2024-06-06 15:35:30 -04:00
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
2024-08-20 08:36:39 -04:00
|
|
|
import 'package:logging/logging.dart';
|
2024-08-23 04:21:46 -04:00
|
|
|
import 'package:vaani/features/player/providers/audiobook_player.dart';
|
|
|
|
|
import 'package:vaani/features/player/view/player_when_expanded.dart';
|
|
|
|
|
import 'package:vaani/features/player/view/widgets/speed_selector.dart';
|
2024-06-06 15:35:30 -04:00
|
|
|
|
2024-08-20 08:36:39 -04:00
|
|
|
final _logger = Logger('PlayerSpeedAdjustButton');
|
|
|
|
|
|
2024-06-06 15:35:30 -04:00
|
|
|
class PlayerSpeedAdjustButton extends HookConsumerWidget {
|
|
|
|
|
const PlayerSpeedAdjustButton({
|
|
|
|
|
super.key,
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Widget build(BuildContext context, WidgetRef ref) {
|
|
|
|
|
final player = ref.watch(audiobookPlayerProvider);
|
|
|
|
|
final notifier = ref.watch(audiobookPlayerProvider.notifier);
|
|
|
|
|
return TextButton(
|
|
|
|
|
child: Text('${player.speed}x'),
|
2024-08-20 08:36:39 -04:00
|
|
|
onPressed: () async {
|
|
|
|
|
pendingPlayerModals++;
|
|
|
|
|
_logger.fine('opening speed selector');
|
|
|
|
|
await showModalBottomSheet<bool>(
|
2024-06-06 15:35:30 -04:00
|
|
|
context: context,
|
|
|
|
|
barrierLabel: 'Select Speed',
|
|
|
|
|
constraints: const BoxConstraints(
|
|
|
|
|
maxHeight: 225,
|
|
|
|
|
),
|
|
|
|
|
builder: (context) {
|
|
|
|
|
return SpeedSelector(
|
|
|
|
|
onSpeedSelected: (speed) {
|
|
|
|
|
notifier.setSpeed(speed);
|
|
|
|
|
},
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
);
|
2024-08-20 08:36:39 -04:00
|
|
|
pendingPlayerModals--;
|
|
|
|
|
_logger.fine('Closing speed selector');
|
2024-06-06 15:35:30 -04:00
|
|
|
},
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|