mirror of
https://github.com/gabehf/Fladder.git
synced 2026-03-14 01:37:07 -07:00
feature: Improved video player stop controls (#146)
Co-authored-by: PartyDonut <PartyDonut@users.noreply.github.com>
This commit is contained in:
parent
9f141a826b
commit
f20aab2118
10 changed files with 89 additions and 46 deletions
|
|
@ -1,23 +1,28 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
|
||||
import 'package:ficonsax/ficonsax.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:screen_brightness/screen_brightness.dart';
|
||||
|
||||
import 'package:fladder/models/item_base_model.dart';
|
||||
import 'package:fladder/models/items/movie_model.dart';
|
||||
import 'package:fladder/models/media_playback_model.dart';
|
||||
import 'package:fladder/models/playback/playback_model.dart';
|
||||
import 'package:fladder/models/settings/video_player_settings.dart';
|
||||
import 'package:fladder/providers/settings/client_settings_provider.dart';
|
||||
import 'package:fladder/providers/settings/video_player_settings_provider.dart';
|
||||
import 'package:fladder/providers/user_provider.dart';
|
||||
import 'package:fladder/providers/video_player_provider.dart';
|
||||
import 'package:fladder/screens/shared/animated_fade_size.dart';
|
||||
import 'package:fladder/screens/shared/default_titlebar.dart';
|
||||
import 'package:fladder/screens/shared/default_title_bar.dart';
|
||||
import 'package:fladder/util/adaptive_layout.dart';
|
||||
import 'package:fladder/util/fladder_image.dart';
|
||||
import 'package:fladder/util/list_padding.dart';
|
||||
import 'package:fladder/util/localization_helper.dart';
|
||||
import 'package:fladder/widgets/navigation_scaffold/components/floating_player_bar.dart';
|
||||
import 'package:fladder/widgets/shared/full_screen_button.dart'
|
||||
if (dart.library.html) 'package:fladder/widgets/shared/full_screen_button_web.dart';
|
||||
import 'package:fladder/widgets/shared/progress_floating_button.dart';
|
||||
|
||||
class VideoPlayerNextWrapper extends ConsumerStatefulWidget {
|
||||
|
|
@ -117,6 +122,24 @@ class _VideoPlayerNextWrapperState extends ConsumerState<VideoPlayerNextWrapper>
|
|||
});
|
||||
}
|
||||
|
||||
Future<void> closePlayer() async {
|
||||
clearOverlaySettings();
|
||||
ref.read(videoPlayerProvider).stop();
|
||||
Navigator.of(context).pop();
|
||||
}
|
||||
|
||||
Future<void> clearOverlaySettings() async {
|
||||
if (AdaptiveLayout.of(context).inputDevice != InputDevice.pointer) {
|
||||
ScreenBrightness().resetScreenBrightness();
|
||||
} else {
|
||||
closeFullScreen();
|
||||
}
|
||||
|
||||
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
|
||||
statusBarIconBrightness: ref.read(clientSettingsProvider.select((value) => value.statusBarBrightness(context))),
|
||||
));
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
timerController.cancel();
|
||||
|
|
@ -252,9 +275,15 @@ class _VideoPlayerNextWrapperState extends ConsumerState<VideoPlayerNextWrapper>
|
|||
const SizedBox(width: 8),
|
||||
IconButton.filledTonal(
|
||||
onPressed: () => hideNextUp(),
|
||||
tooltip: "Resume video",
|
||||
tooltip: context.localized.resumeVideo,
|
||||
icon: const Icon(IconsaxBold.maximize_4),
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
IconButton.filledTonal(
|
||||
onPressed: () => closePlayer(),
|
||||
tooltip: context.localized.closeVideo,
|
||||
icon: const Icon(IconsaxBold.close_square),
|
||||
),
|
||||
],
|
||||
),
|
||||
)
|
||||
|
|
@ -430,7 +459,7 @@ class _SimpleControls extends ConsumerWidget {
|
|||
if (skip != null)
|
||||
IconButton.filledTonal(
|
||||
onPressed: skip,
|
||||
tooltip: "Play next video",
|
||||
tooltip: context.localized.playNextVideo,
|
||||
icon: const Icon(IconsaxBold.next),
|
||||
)
|
||||
].addInBetween(const SizedBox(width: 4)));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue