spotube/lib/hooks/playback.dart
Kingkor Roy Tirtho 0cf5bfea50 implemented custom logger
[android] fixed solid color screen until the player on the navbar is stopped
2022-03-23 11:51:58 +06:00

42 lines
1.1 KiB
Dart

import 'package:spotube/models/Logger.dart';
import 'package:spotube/provider/Playback.dart';
final logger = createLogger("PlaybackHook");
Future<void> Function() useNextTrack(Playback playback) {
return () async {
try {
await playback.player.pause();
await playback.player.seek(Duration.zero);
playback.movePlaylistPositionBy(1);
} catch (e, stack) {
logger.e("useNextTrack", e, stack);
}
};
}
Future<void> Function() usePreviousTrack(Playback playback) {
return () async {
try {
await playback.player.pause();
await playback.player.seek(Duration.zero);
playback.movePlaylistPositionBy(-1);
} catch (e, stack) {
logger.e("onPrevious", e, stack);
}
};
}
Future<void> Function([dynamic]) useTogglePlayPause(Playback playback) {
return ([key]) async {
try {
if (playback.currentTrack == null) return;
playback.isPlaying
? await playback.player.pause()
: await playback.player.play();
} catch (e, stack) {
logger.e("useTogglePlayPause", e, stack);
}
};
}