shufflemode persistence

This commit is contained in:
Moritz Weber 2020-12-21 11:57:30 +01:00
parent c9cdef237a
commit ff65e42494
4 changed files with 9 additions and 5 deletions

View file

@ -19,8 +19,8 @@ abstract class AudioRepository {
Future<Either<Failure, void>> pause();
Future<Either<Failure, void>> skipToNext();
Future<Either<Failure, void>> skipToPrevious();
Future<Either<Failure, void>> setShuffleMode(ShuffleMode shuffleMode);
Future<Either<Failure, void>> setShuffleMode(ShuffleMode shuffleMode);
Future<void> setLoopMode(LoopMode loopMode);
Future<Either<Failure, void>> shuffleAll();

View file

@ -1,8 +1,10 @@
import '../entities/loop_mode.dart';
import '../entities/shuffle_mode.dart';
import '../entities/song.dart';
abstract class PlayerStateRepository {
Stream<List<Song>> get queueStream;
Stream<int> get currentIndexStream;
Stream<LoopMode> get loopModeStream;
Stream<ShuffleMode> get shuffleModeStream;
}

View file

@ -18,8 +18,7 @@ class AudioStore extends _AudioStore with _$AudioStore {
}
abstract class _AudioStore with Store {
_AudioStore(
this._audioRepository, this._persistentPlayerStateRepository) {
_AudioStore(this._audioRepository, this._persistentPlayerStateRepository) {
currentSongStream = _audioRepository.currentSongStream.distinct().asObservable();
currentPositionStream = _audioRepository.currentPositionStream.asObservable(initialValue: 0);
@ -29,8 +28,7 @@ abstract class _AudioStore with Store {
queueIndexStream = _persistentPlayerStateRepository.currentIndexStream.asObservable();
// queueIndexStream = _audioRepository.queueIndexStream.asObservable();
shuffleModeStream =
_audioRepository.shuffleModeStream.asObservable(initialValue: ShuffleMode.none);
shuffleModeStream = _persistentPlayerStateRepository.shuffleModeStream.asObservable();
loopModeStream = _persistentPlayerStateRepository.loopModeStream.asObservable();

View file

@ -1,4 +1,5 @@
import '../../domain/entities/loop_mode.dart';
import '../../domain/entities/shuffle_mode.dart';
import '../../domain/entities/song.dart';
import '../../domain/repositories/persistent_player_state_repository.dart';
import '../datasources/player_state_data_source.dart';
@ -16,4 +17,7 @@ class PlayerStateRepositoryImpl implements PlayerStateRepository {
@override
Stream<List<Song>> get queueStream => _playerStateDataSource.songQueueStream;
@override
Stream<ShuffleMode> get shuffleModeStream => _playerStateDataSource.shuffleModeStream;
}