31.01.2019 — день четырнадцатый
Published in
1 min readJan 31, 2019
Итоги 14-го дня: Занимался стабилизацией работы приложения и упрощением кода — так как перед написанием новых частей(альбомы, рекомендации, кураторы и т.д.) нужно максимально правильно и просто написать текущий код, чтобы потом сэкономить время.
Теперь код в BLoC примерно такой
@override
Stream<AudioState> mapEventToState(
currentState,
event,
) async* {
if (event is PlayPlaylistAudio) {
yield await event.apply();
}
if (event is InitSongsAudio) {
yield await event.apply();
}
....
Внутри Event написан так:
@override
Future<AudioState> apply({AudioState currentState}) async {
try {
var songs = this.songs;
var ids = sortAudio(songs, null);
var current = songs.indexWhere((c) => c.id == ids.first);
var newState = AudioPlayState(
songs: songs,
current: current,
errorMessage: null,
playerStateType: PlayerStateType.play);
await this.audioService.playAsync(ids);
return newState;
} catch (_) {
print(_);
return AudioError();
}
}
Таким образом становится проще понять логику работы самого Bloc и сделать apply для Event более простым и увидеть все зависимости.