mirror of
https://github.com/gabehf/Fladder.git
synced 2026-03-13 17:30:31 -07:00
feature: Add actions for media segments (#236)
Co-authored-by: PartyDonut <PartyDonut@users.noreply.github.com>
This commit is contained in:
parent
f0414439f3
commit
e4b8a050c7
9 changed files with 155 additions and 23 deletions
|
|
@ -65,16 +65,22 @@ class OpenQueueButton extends ConsumerWidget {
|
|||
|
||||
class SkipSegmentButton extends ConsumerWidget {
|
||||
final MediaSegment? segment;
|
||||
final SegmentSkip? skipType;
|
||||
final bool isOverlayVisible;
|
||||
|
||||
final Function() pressedSkip;
|
||||
const SkipSegmentButton(
|
||||
{required this.segment, required this.isOverlayVisible, required this.pressedSkip, super.key});
|
||||
const SkipSegmentButton({
|
||||
required this.segment,
|
||||
this.skipType,
|
||||
required this.isOverlayVisible,
|
||||
required this.pressedSkip,
|
||||
super.key,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context, WidgetRef ref) {
|
||||
return AnimatedFadeSize(
|
||||
child: segment != null
|
||||
child: segment != null && skipType != SegmentSkip.none
|
||||
? AnimatedOpacity(
|
||||
opacity: isOverlayVisible ? 1 : 0.15,
|
||||
duration: const Duration(milliseconds: 500),
|
||||
|
|
|
|||
|
|
@ -166,6 +166,13 @@ class _DesktopControlsState extends ConsumerState<DesktopControls> {
|
|||
final position = ref.watch(mediaPlaybackProvider.select((value) => value.position));
|
||||
MediaSegment? segment = mediaSegments?.atPosition(position);
|
||||
bool forceShow = segment?.forceShow(position) ?? false;
|
||||
final segmentSkipType = ref
|
||||
.watch(videoPlayerSettingsProvider.select((value) => value.segmentSkipSettings[segment?.type]));
|
||||
final autoSkip =
|
||||
forceShow == true && segmentSkipType == SegmentSkip.skip && player.lastState?.buffering == false;
|
||||
if (autoSkip) {
|
||||
skipToSegmentEnd(segment);
|
||||
}
|
||||
return Stack(
|
||||
children: [
|
||||
Align(
|
||||
|
|
@ -174,6 +181,7 @@ class _DesktopControlsState extends ConsumerState<DesktopControls> {
|
|||
padding: const EdgeInsets.all(32),
|
||||
child: SkipSegmentButton(
|
||||
segment: segment,
|
||||
skipType: segmentSkipType,
|
||||
isOverlayVisible: forceShow ? true : showOverlay,
|
||||
pressedSkip: () => skipToSegmentEnd(segment),
|
||||
),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue