Skip to content

Commit eb74772

Browse files
committed
chore: fix wrong audio source result showing up in Alternative track sheet
1 parent b9417ca commit eb74772

File tree

1 file changed

+37
-22
lines changed

1 file changed

+37
-22
lines changed

lib/components/player/sibling_tracks_sheet.dart

+37-22
Original file line numberDiff line numberDiff line change
@@ -82,35 +82,50 @@ class SiblingTracksSheet extends HookConsumerWidget {
8282
if (searchTerm.trim().isEmpty) {
8383
return <SourceInfo>[];
8484
}
85-
86-
final resultsYt = await youtubeClient.search.search(searchTerm.trim());
87-
final resultsJioSaavn =
88-
await jiosaavnClient.search.songs(searchTerm.trim());
89-
90-
final searchResults = await Future.wait([
91-
...resultsJioSaavn.results.mapIndexed((i, song) async {
85+
if (preferences.audioSource == AudioSource.jiosaavn) {
86+
final resultsJioSaavn =
87+
await jiosaavnClient.search.songs(searchTerm.trim());
88+
final results = await Future.wait(
89+
resultsJioSaavn.results.mapIndexed((i, song) async {
9290
final siblingType = JioSaavnSourcedTrack.toSiblingType(song);
9391
return siblingType.info;
94-
}),
95-
...resultsYt
96-
.map(YoutubeVideoInfo.fromVideo)
97-
.mapIndexed((i, video) async {
98-
final siblingType = await YoutubeSourcedTrack.toSiblingType(i, video);
99-
return siblingType.info;
100-
}),
101-
]);
102-
final activeSourceInfo =
103-
(playlist.activeTrack! as SourcedTrack).sourceInfo;
104-
return searchResults
105-
..removeWhere((element) => element.id == activeSourceInfo.id)
106-
..insert(
107-
0,
108-
activeSourceInfo,
92+
}));
93+
94+
final activeSourceInfo =
95+
(playlist.activeTrack! as SourcedTrack).sourceInfo;
96+
97+
return results
98+
..removeWhere((element) => element.id == activeSourceInfo.id)
99+
..insert(
100+
0,
101+
activeSourceInfo,
102+
);
103+
} else {
104+
final resultsYt = await youtubeClient.search.search(searchTerm.trim());
105+
106+
final searchResults = await Future.wait(
107+
resultsYt
108+
.map(YoutubeVideoInfo.fromVideo)
109+
.mapIndexed((i, video) async {
110+
final siblingType =
111+
await YoutubeSourcedTrack.toSiblingType(i, video);
112+
return siblingType.info;
113+
}),
109114
);
115+
final activeSourceInfo =
116+
(playlist.activeTrack! as SourcedTrack).sourceInfo;
117+
return searchResults
118+
..removeWhere((element) => element.id == activeSourceInfo.id)
119+
..insert(
120+
0,
121+
activeSourceInfo,
122+
);
123+
}
110124
}, [
111125
searchTerm,
112126
searchMode.value,
113127
playlist.activeTrack,
128+
preferences.audioSource,
114129
]);
115130

116131
final siblings = useMemoized(

0 commit comments

Comments
 (0)