summaryrefslogtreecommitdiff
path: root/lib/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'lib/widgets')
-rw-r--r--lib/widgets/arrows.dart3
-rw-r--r--lib/widgets/level_info_chip.dart37
-rw-r--r--lib/widgets/level_list_entry.dart24
3 files changed, 60 insertions, 4 deletions
diff --git a/lib/widgets/arrows.dart b/lib/widgets/arrows.dart
index cf04e59..162f0f3 100644
--- a/lib/widgets/arrows.dart
+++ b/lib/widgets/arrows.dart
@@ -4,9 +4,8 @@ import 'package:sense_the_rhythm/widgets/arrow.dart';
class Arrows extends StatelessWidget {
final List<Note> notes;
- final double position;
- const Arrows({super.key, required this.notes, required this.position});
+ const Arrows({super.key, required this.notes});
@override
Widget build(BuildContext context) {
diff --git a/lib/widgets/level_info_chip.dart b/lib/widgets/level_info_chip.dart
new file mode 100644
index 0000000..8e4146c
--- /dev/null
+++ b/lib/widgets/level_info_chip.dart
@@ -0,0 +1,37 @@
+import 'package:flutter/material.dart';
+
+class LevelInfoChip extends StatelessWidget {
+ final String label;
+ final IconData icon;
+
+ const LevelInfoChip({super.key, required this.label, required this.icon});
+
+ @override
+ Widget build(BuildContext context) {
+ return OutlinedButton(
+ style: ButtonStyle(
+ shape: WidgetStateProperty.all(RoundedRectangleBorder(
+ borderRadius: BorderRadius.all(Radius.circular(5)))),
+ minimumSize: WidgetStateProperty.all(Size(10, 10)),
+ tapTargetSize: MaterialTapTargetSize.shrinkWrap,
+ padding: WidgetStateProperty.all(
+ EdgeInsets.symmetric(vertical: 4.0, horizontal: 5.0))
+ ),
+ onPressed: () {},
+ child: Row(children: [
+ Icon(
+ icon,
+ size: 16,
+ ),
+ SizedBox(width: 4),
+ Text(
+ label,
+ style: TextStyle(
+ fontSize: 14,
+ fontWeight:
+ FontWeight.w200), // Adjust font size for smaller appearance
+ ),
+ ]),
+ );
+ }
+}
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);
},