@@ -83,14 +83,17 @@ class EpisodeViewModel extends BaseViewModel {
8383 }
8484
8585 void initProgressListener (Episodes episode) {
86- setProgressListener = AudioService .position.listen (
87- (event) {
88- int duration = episode.duration! .inSeconds;
89- double sliderValue = event.inSeconds / duration;
90- setSliderValue = sliderValue;
91- handleTimeVortex (duration, event.inSeconds);
92- },
93- );
86+ if (audioService.episodeId == episode.id ||
87+ audioService.episodeId.isEmpty) {
88+ setProgressListener = AudioService .position.listen (
89+ (event) {
90+ int duration = episode.duration! .inSeconds;
91+ double sliderValue = event.inSeconds / duration;
92+ setSliderValue = sliderValue;
93+ handleTimeVortex (duration, event.inSeconds);
94+ },
95+ );
96+ }
9497 }
9598
9699 void handleTimeVortex (int duration, int inSeconds) {
@@ -194,10 +197,11 @@ class EpisodeViewModel extends BaseViewModel {
194197 setSliderValue = value > 0 ? value : 0.0 ;
195198 }
196199
197- void playOrPause (Episodes episode) {
200+ void playOrPause (Episodes episode, Podcasts podcast ) {
198201 if (audioService.isPlaying ('podcast' , episodeId: episode.id)) {
199202 audioService.pause ();
200203 } else {
204+ loadEpisode (episode, podcast);
201205 audioService.play ();
202206 }
203207 }
@@ -217,6 +221,7 @@ class EpisodeViewModel extends BaseViewModel {
217221 if (audioService.episodeId != episode.id) {
218222 audioService.setEpisodeId = episode.id;
219223 audioService.loadEpisode (episode, downloaded, podcast);
224+ initProgressListener (episode);
220225 }
221226 }
222227}
0 commit comments