chore: fix wrong audio source result showing up in Alternative track sheet

This commit is contained in:
Kingkor Roy Tirtho 2024-01-24 12:11:49 +06:00
parent b9417ca357
commit eb7477273f

View File

@ -82,35 +82,50 @@ class SiblingTracksSheet extends HookConsumerWidget {
if (searchTerm.trim().isEmpty) { if (searchTerm.trim().isEmpty) {
return <SourceInfo>[]; return <SourceInfo>[];
} }
if (preferences.audioSource == AudioSource.jiosaavn) {
final resultsYt = await youtubeClient.search.search(searchTerm.trim()); final resultsJioSaavn =
final resultsJioSaavn = await jiosaavnClient.search.songs(searchTerm.trim());
await jiosaavnClient.search.songs(searchTerm.trim()); final results = await Future.wait(
resultsJioSaavn.results.mapIndexed((i, song) async {
final searchResults = await Future.wait([
...resultsJioSaavn.results.mapIndexed((i, song) async {
final siblingType = JioSaavnSourcedTrack.toSiblingType(song); final siblingType = JioSaavnSourcedTrack.toSiblingType(song);
return siblingType.info; return siblingType.info;
}), }));
...resultsYt
.map(YoutubeVideoInfo.fromVideo) final activeSourceInfo =
.mapIndexed((i, video) async { (playlist.activeTrack! as SourcedTrack).sourceInfo;
final siblingType = await YoutubeSourcedTrack.toSiblingType(i, video);
return siblingType.info; return results
}), ..removeWhere((element) => element.id == activeSourceInfo.id)
]); ..insert(
final activeSourceInfo = 0,
(playlist.activeTrack! as SourcedTrack).sourceInfo; activeSourceInfo,
return searchResults );
..removeWhere((element) => element.id == activeSourceInfo.id) } else {
..insert( final resultsYt = await youtubeClient.search.search(searchTerm.trim());
0,
activeSourceInfo, final searchResults = await Future.wait(
resultsYt
.map(YoutubeVideoInfo.fromVideo)
.mapIndexed((i, video) async {
final siblingType =
await YoutubeSourcedTrack.toSiblingType(i, video);
return siblingType.info;
}),
); );
final activeSourceInfo =
(playlist.activeTrack! as SourcedTrack).sourceInfo;
return searchResults
..removeWhere((element) => element.id == activeSourceInfo.id)
..insert(
0,
activeSourceInfo,
);
}
}, [ }, [
searchTerm, searchTerm,
searchMode.value, searchMode.value,
playlist.activeTrack, playlist.activeTrack,
preferences.audioSource,
]); ]);
final siblings = useMemoized( final siblings = useMemoized(