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,23 +82,36 @@ 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(
final searchResults = await Future.wait([ resultsJioSaavn.results.mapIndexed((i, song) async {
...resultsJioSaavn.results.mapIndexed((i, song) async {
final siblingType = JioSaavnSourcedTrack.toSiblingType(song); final siblingType = JioSaavnSourcedTrack.toSiblingType(song);
return siblingType.info; return siblingType.info;
}), }));
...resultsYt
final activeSourceInfo =
(playlist.activeTrack! as SourcedTrack).sourceInfo;
return results
..removeWhere((element) => element.id == activeSourceInfo.id)
..insert(
0,
activeSourceInfo,
);
} else {
final resultsYt = await youtubeClient.search.search(searchTerm.trim());
final searchResults = await Future.wait(
resultsYt
.map(YoutubeVideoInfo.fromVideo) .map(YoutubeVideoInfo.fromVideo)
.mapIndexed((i, video) async { .mapIndexed((i, video) async {
final siblingType = await YoutubeSourcedTrack.toSiblingType(i, video); final siblingType =
await YoutubeSourcedTrack.toSiblingType(i, video);
return siblingType.info; return siblingType.info;
}), }),
]); );
final activeSourceInfo = final activeSourceInfo =
(playlist.activeTrack! as SourcedTrack).sourceInfo; (playlist.activeTrack! as SourcedTrack).sourceInfo;
return searchResults return searchResults
@ -107,10 +120,12 @@ class SiblingTracksSheet extends HookConsumerWidget {
0, 0,
activeSourceInfo, activeSourceInfo,
); );
}
}, [ }, [
searchTerm, searchTerm,
searchMode.value, searchMode.value,
playlist.activeTrack, playlist.activeTrack,
preferences.audioSource,
]); ]);
final siblings = useMemoized( final siblings = useMemoized(