diff options
author | Orangerot <purple@orangerot.dev> | 2025-01-14 16:26:57 +0100 |
---|---|---|
committer | Orangerot <purple@orangerot.dev> | 2025-01-14 16:26:57 +0100 |
commit | 28d0fe7d8c3a38d7c2ded86c30b549ed6be48f3c (patch) | |
tree | 1eef2ccbf39dda7f5981b8a763c8de5b4461d4ec /lib/widgets/level_list_entry.dart | |
parent | 94463a490c039d79a7a5fcd642c0ed2411a509cd (diff) |
feat: show duration in level selection + more robust simfile loader
Diffstat (limited to 'lib/widgets/level_list_entry.dart')
-rw-r--r-- | lib/widgets/level_list_entry.dart | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/lib/widgets/level_list_entry.dart b/lib/widgets/level_list_entry.dart index 832186f..abb4784 100644 --- a/lib/widgets/level_list_entry.dart +++ b/lib/widgets/level_list_entry.dart @@ -6,6 +6,7 @@ import 'package:sense_the_rhythm/utils/simfile.dart'; import 'package:sense_the_rhythm/screens/level.dart'; import 'package:sense_the_rhythm/widgets/esense_connect_dialog.dart'; import 'package:sense_the_rhythm/widgets/esense_not_connected_dialog.dart'; +import 'package:sense_the_rhythm/widgets/level_info_chip.dart'; class LevelListEntry extends StatelessWidget { const LevelListEntry({ @@ -62,8 +63,27 @@ class LevelListEntry extends StatelessWidget { return ListTile( leading: Image.file(File(simfile.bannerPath!)), trailing: Icon(Icons.play_arrow), - title: Text(simfile.tags["TITLE"]!), - subtitle: Text('3:45'), + title: Text( + simfile.tags["TITLE"]!, + style: TextStyle(fontWeight: FontWeight.bold), + ), + subtitle: Padding( + padding: const EdgeInsets.only(bottom: 2), + child: Row( + spacing: 2, + children: [ + LevelInfoChip( + label: + '${simfile.duration!.inMinutes}:${simfile.duration!.inSeconds.remainder(60).toString().padLeft(2, "0")}', + icon: Icons.timer_outlined, + ), + LevelInfoChip( + label: '${simfile.bpms.entries.first.value.toInt()} BPM', + icon: Icons.graphic_eq, + ), + ], + ), + ), onTap: () { tapHandler(context); }, |