summaryrefslogtreecommitdiff
path: root/lib/widgets/level_list_entry.dart
diff options
context:
space:
mode:
authorOrangerot <purple@orangerot.dev>2025-01-14 16:26:57 +0100
committerOrangerot <purple@orangerot.dev>2025-01-14 16:26:57 +0100
commit28d0fe7d8c3a38d7c2ded86c30b549ed6be48f3c (patch)
tree1eef2ccbf39dda7f5981b8a763c8de5b4461d4ec /lib/widgets/level_list_entry.dart
parent94463a490c039d79a7a5fcd642c0ed2411a509cd (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.dart24
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);
},