From d29bd8f8642888ff72e70d3b534d85acf70a7b75 Mon Sep 17 00:00:00 2001 From: Chaphasilor Date: Mon, 29 Apr 2024 00:21:48 +0200 Subject: [PATCH] play correct item from search while still using full downloads as queue in offline mode --- lib/components/AlbumScreen/song_list_tile.dart | 6 ++++-- lib/components/MusicScreen/music_screen_tab_view.dart | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/components/AlbumScreen/song_list_tile.dart b/lib/components/AlbumScreen/song_list_tile.dart index 5f51dd5f..4aa3e43f 100644 --- a/lib/components/AlbumScreen/song_list_tile.dart +++ b/lib/components/AlbumScreen/song_list_tile.dart @@ -66,6 +66,7 @@ class SongListTile extends ConsumerStatefulWidget { /// the remove from playlist button. this.isInPlaylist = false, this.isOnArtistScreen = false, + this.isShownInSearch = false, }) : super(key: key); final jellyfin_models.BaseItemDto item; @@ -78,6 +79,7 @@ class SongListTile extends ConsumerStatefulWidget { final bool showPlayCount; final bool isInPlaylist; final bool isOnArtistScreen; + final bool isShownInSearch; @override ConsumerState createState() => _SongListTileState(); @@ -276,10 +278,10 @@ class _SongListTileState extends ConsumerState var items = offlineItems.map((e) => e.baseItem).whereNotNull().toList(); items = sortItems(items, settings.tabSortBy[TabContentType.songs], settings.tabSortOrder[TabContentType.songs]); - + await _queueService.startPlayback( items: items, - startingIndex: await widget.index, + startingIndex: widget.isShownInSearch ? items.indexWhere((element) => element.id == widget.item.id) : await widget.index, source: QueueItemSource( name: QueueItemSourceName( type: QueueItemSourceNameType.preTranslated, diff --git a/lib/components/MusicScreen/music_screen_tab_view.dart b/lib/components/MusicScreen/music_screen_tab_view.dart index 9727c8bc..89f979a7 100644 --- a/lib/components/MusicScreen/music_screen_tab_view.dart +++ b/lib/components/MusicScreen/music_screen_tab_view.dart @@ -319,6 +319,7 @@ class _MusicScreenTabViewState extends State item: item, isSong: true, index: Future.value(index), + isShownInSearch: widget.searchTerm != null, ) : AlbumItem( key: ValueKey(item.id),