mucke/lib/domain/usecases/play_next.dart

32 lines
1 KiB
Dart
Raw Normal View History

2021-03-06 19:09:19 +01:00
import '../entities/song.dart';
import '../modules/queue_manager.dart';
import '../repositories/audio_player_repository.dart';
import '../repositories/persistent_player_state_repository.dart';
import '../repositories/platform_integration_repository.dart';
class PlayNext {
PlayNext(
this._audioPlayerRepository,
this._platformIntegrationRepository,
this._playerStateRepository,
this._queueManagerModule,
);
final AudioPlayerRepository _audioPlayerRepository;
final PlatformIntegrationRepository _platformIntegrationRepository;
final PlayerStateRepository _playerStateRepository;
final QueueManagerModule _queueManagerModule;
Future<void> call(Song song) async {
2021-05-09 21:38:34 +02:00
final currentIndex = _audioPlayerRepository.currentIndexStream.valueWrapper.value;
2021-03-06 19:09:19 +01:00
_queueManagerModule.insertIntoQueue(song, currentIndex + 1);
await _audioPlayerRepository.playNext(song);
2021-05-09 21:38:34 +02:00
final songList = _audioPlayerRepository.queueStream.valueWrapper.value;
2021-03-06 19:09:19 +01:00
print(songList.length);
_platformIntegrationRepository.setQueue(songList);
}
}