@@ -30,6 +30,7 @@ class ControllerEntry {
30
30
final IconData Function (BuildContext context) icon;
31
31
final String title;
32
32
final String subtitle;
33
+ final String Function (BuildContext context) tooltipBuilder;
33
34
final Widget Function (BuildContext context, List <Shadow >? shadows)
34
35
controllerButtonBuilder;
35
36
final Future <MenuFlyoutItem > Function (BuildContext context)
@@ -42,6 +43,7 @@ class ControllerEntry {
42
43
required this .icon,
43
44
required this .title,
44
45
required this .subtitle,
46
+ required this .tooltipBuilder,
45
47
required this .controllerButtonBuilder,
46
48
required this .flyoutEntryBuilder,
47
49
required this .shortcuts,
@@ -67,6 +69,7 @@ final controllerItems = [
67
69
68
70
playPrevious ();
69
71
},
72
+ tooltipBuilder: (context) => "Previous" ,
70
73
controllerButtonBuilder: (context, shadows) {
71
74
final statusProvider =
72
75
Provider .of <PlaybackStatusProvider >(context, listen: false );
@@ -131,6 +134,13 @@ final controllerItems = [
131
134
playPlay ();
132
135
}
133
136
},
137
+ tooltipBuilder: (context) {
138
+ final statusProvider =
139
+ Provider .of <PlaybackStatusProvider >(context, listen: false );
140
+ final status = statusProvider.playbackStatus;
141
+
142
+ return status? .state == "Playing" ? "Pause" : "Play" ;
143
+ },
134
144
controllerButtonBuilder: (context, shadows) {
135
145
final statusProvider =
136
146
Provider .of <PlaybackStatusProvider >(context, listen: false );
@@ -183,6 +193,7 @@ final controllerItems = [
183
193
184
194
playNext ();
185
195
},
196
+ tooltipBuilder: (context) => "Next" ,
186
197
controllerButtonBuilder: (context, shadows) {
187
198
final statusProvider =
188
199
Provider .of <PlaybackStatusProvider >(context, listen: false );
@@ -211,7 +222,7 @@ final controllerItems = [
211
222
? null
212
223
: () {
213
224
context.pop ();
214
- playPrevious ();
225
+ playNext ();
215
226
},
216
227
);
217
228
},
@@ -231,6 +242,7 @@ final controllerItems = [
231
242
subtitle: "Adjust the volume" ,
232
243
shortcuts: [],
233
244
onShortcut: null ,
245
+ tooltipBuilder: (context) => "Volume" ,
234
246
controllerButtonBuilder: (context, shadows) => VolumeButton (
235
247
shadows: shadows,
236
248
),
@@ -287,6 +299,16 @@ final controllerItems = [
287
299
},
288
300
title: "Playback Mode" ,
289
301
subtitle: "Switch between sequential, repeat, or shuffle" ,
302
+ tooltipBuilder: (context) {
303
+ final statusProvider =
304
+ Provider .of <PlaybackStatusProvider >(context, listen: false );
305
+ final status = statusProvider.playbackStatus;
306
+
307
+ final currentMode =
308
+ PlaybackModeExtension .fromValue (status? .playbackMode ?? 0 );
309
+
310
+ return modeToLabel (currentMode);
311
+ },
290
312
controllerButtonBuilder: (context, shadows) => PlaybackModeButton (
291
313
shadows: shadows,
292
314
),
@@ -364,6 +386,7 @@ final controllerItems = [
364
386
onShortcut: (context) {
365
387
showPlayQueueDialog (context);
366
388
},
389
+ tooltipBuilder: (context) => "Playlist" ,
367
390
controllerButtonBuilder: (context, shadows) => QueueButton (
368
391
shadows: shadows,
369
392
),
@@ -391,6 +414,7 @@ final controllerItems = [
391
414
subtitle: "Content below will be hidden in the others list" ,
392
415
shortcuts: [],
393
416
onShortcut: null ,
417
+ tooltipBuilder: (context) => "Hidden" ,
394
418
controllerButtonBuilder: (context, shadows) => Container (),
395
419
flyoutEntryBuilder: (context) async {
396
420
return MenuFlyoutItem (
@@ -409,6 +433,7 @@ final controllerItems = [
409
433
onShortcut: (context) {
410
434
showCoverArtWall (context);
411
435
},
436
+ tooltipBuilder: (context) => "Cover Wall" ,
412
437
controllerButtonBuilder: (context, shadows) => CoverWallButton (
413
438
shadows: shadows,
414
439
),
@@ -449,6 +474,7 @@ final controllerItems = [
449
474
450
475
fullScreen.setFullScreen (! fullScreen.isFullScreen);
451
476
},
477
+ tooltipBuilder: (context) => "Fullscreen" ,
452
478
controllerButtonBuilder: (context, shadows) => FullScreenButton (
453
479
shadows: shadows,
454
480
),
0 commit comments