From b09263d128062efb6ad6b66c19da4f5b31377e64 Mon Sep 17 00:00:00 2001 From: Kingkor Roy Tirtho Date: Sun, 22 Dec 2024 15:03:49 +0600 Subject: [PATCH] chore: fix queue close causing exceptions --- lib/components/adaptive/adaptive_pop_sheet_list.dart | 10 +++++----- lib/components/track_tile/track_options.dart | 1 + lib/modules/player/player_actions.dart | 10 +++++++++- lib/modules/player/player_queue.dart | 2 +- 4 files changed, 16 insertions(+), 7 deletions(-) diff --git a/lib/components/adaptive/adaptive_pop_sheet_list.dart b/lib/components/adaptive/adaptive_pop_sheet_list.dart index fa72031e..63499e8a 100644 --- a/lib/components/adaptive/adaptive_pop_sheet_list.dart +++ b/lib/components/adaptive/adaptive_pop_sheet_list.dart @@ -34,7 +34,7 @@ class AdaptivePopSheetList extends StatelessWidget { final bool useRootNavigator; final List? headings; - final String? tooltip; + final String tooltip; final ValueChanged? onSelected; final Offset offset; @@ -47,7 +47,7 @@ class AdaptivePopSheetList extends StatelessWidget { this.useRootNavigator = true, this.headings, this.onSelected, - this.tooltip, + required this.tooltip, this.offset = Offset.zero, }) : assert( !(icon != null && child != null), @@ -140,7 +140,7 @@ class AdaptivePopSheetList extends StatelessWidget { if (mediaQuery.mdAndUp) { return Tooltip( tooltip: TooltipContainer( - child: Text(tooltip ?? ''), + child: Text(tooltip), ), child: IconButton.ghost( icon: icon ?? const Icon(SpotubeIcons.moreVertical), @@ -164,7 +164,7 @@ class AdaptivePopSheetList extends StatelessWidget { if (child != null) { return Tooltip( - tooltip: TooltipContainer(child: Text(tooltip ?? '')), + tooltip: TooltipContainer(child: Text(tooltip)), child: Button( onPressed: () => showDropdownMenu(context, Offset.zero), style: const ButtonStyle.ghost(), @@ -174,7 +174,7 @@ class AdaptivePopSheetList extends StatelessWidget { } return Tooltip( - tooltip: TooltipContainer(child: Text(tooltip ?? '')), + tooltip: TooltipContainer(child: Text(tooltip)), child: IconButton.ghost( icon: icon ?? const Icon(SpotubeIcons.moreVertical), onPressed: () => showDropdownMenu(context, Offset.zero), diff --git a/lib/components/track_tile/track_options.dart b/lib/components/track_tile/track_options.dart index c40ddd2a..ec2fd2f0 100644 --- a/lib/components/track_tile/track_options.dart +++ b/lib/components/track_tile/track_options.dart @@ -204,6 +204,7 @@ class TrackOptions extends HookConsumerWidget { final isLocalTrack = track is LocalTrack; final adaptivePopSheetList = AdaptivePopSheetList( + tooltip: context.l10n.more_actions, onSelected: (value) async { switch (value) { case TrackOptionValue.album: diff --git a/lib/modules/player/player_actions.dart b/lib/modules/player/player_actions.dart index 5b469510..12965da4 100644 --- a/lib/modules/player/player_actions.dart +++ b/lib/modules/player/player_actions.dart @@ -164,6 +164,7 @@ class PlayerActions extends HookConsumerWidget { auth.asData?.value != null) TrackHeartButton(track: playlist.activeTrack!), AdaptivePopSheetList( + tooltip: context.l10n.sleep_timer, offset: Offset(0, -50 * (sleepTimerEntries.values.length + 2)), headings: [ Text(context.l10n.sleep_timer), @@ -190,11 +191,18 @@ class PlayerActions extends HookConsumerWidget { enabled: customHoursEnabled, onPressed: (context) async { final currentTime = TimeOfDay.now(); - final time = await showDialog( + final time = await showDialog( context: context, builder: (context) => HookBuilder(builder: (context) { final timeRef = useRef(null); return AlertDialog( + trailing: IconButton.ghost( + size: ButtonSize.xSmall, + icon: const Icon(SpotubeIcons.close), + onPressed: () { + Navigator.of(context).pop(); + }, + ), title: Text( ShadcnLocalizations.of(context).placeholderTimePicker, ), diff --git a/lib/modules/player/player_queue.dart b/lib/modules/player/player_queue.dart index 58442666..cdda39da 100644 --- a/lib/modules/player/player_queue.dart +++ b/lib/modules/player/player_queue.dart @@ -166,7 +166,7 @@ class PlayerQueue extends HookConsumerWidget { icon: const Icon(SpotubeIcons.playlistRemove), onPressed: () { onStop(); - Navigator.of(context).pop(); + closeDrawer(context); }, ), ),