mirror of
https://github.com/gabehf/Fladder.git
synced 2026-03-10 16:00:28 -07:00
fix: Moved Debouncer for player setup
This commit is contained in:
parent
dd98bad61c
commit
9cf5e99184
2 changed files with 14 additions and 15 deletions
|
|
@ -15,7 +15,6 @@ import 'package:fladder/providers/shared_provider.dart';
|
||||||
import 'package:fladder/providers/user_provider.dart';
|
import 'package:fladder/providers/user_provider.dart';
|
||||||
import 'package:fladder/providers/video_player_provider.dart';
|
import 'package:fladder/providers/video_player_provider.dart';
|
||||||
import 'package:fladder/src/player_settings_helper.g.dart' as pigeon;
|
import 'package:fladder/src/player_settings_helper.g.dart' as pigeon;
|
||||||
import 'package:fladder/util/debouncer.dart';
|
|
||||||
|
|
||||||
final videoPlayerSettingsProvider =
|
final videoPlayerSettingsProvider =
|
||||||
StateNotifierProvider<VideoPlayerSettingsProviderNotifier, VideoPlayerSettingsModel>((ref) {
|
StateNotifierProvider<VideoPlayerSettingsProviderNotifier, VideoPlayerSettingsModel>((ref) {
|
||||||
|
|
@ -29,8 +28,6 @@ class VideoPlayerSettingsProviderNotifier extends StateNotifier<VideoPlayerSetti
|
||||||
|
|
||||||
final Ref ref;
|
final Ref ref;
|
||||||
|
|
||||||
final Debouncer debouncer = Debouncer(const Duration(seconds: 2));
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
set state(VideoPlayerSettingsModel value) {
|
set state(VideoPlayerSettingsModel value) {
|
||||||
final oldState = super.state;
|
final oldState = super.state;
|
||||||
|
|
@ -38,7 +35,6 @@ class VideoPlayerSettingsProviderNotifier extends StateNotifier<VideoPlayerSetti
|
||||||
ref.read(sharedUtilityProvider).videoPlayerSettings = value;
|
ref.read(sharedUtilityProvider).videoPlayerSettings = value;
|
||||||
if (!kIsWeb && Platform.isAndroid) {
|
if (!kIsWeb && Platform.isAndroid) {
|
||||||
final userData = ref.read(userProvider);
|
final userData = ref.read(userProvider);
|
||||||
|
|
||||||
pigeon.PlayerSettingsPigeon().sendPlayerSettings(
|
pigeon.PlayerSettingsPigeon().sendPlayerSettings(
|
||||||
pigeon.PlayerSettings(
|
pigeon.PlayerSettings(
|
||||||
enableTunneling: value.enableTunneling,
|
enableTunneling: value.enableTunneling,
|
||||||
|
|
@ -65,11 +61,9 @@ class VideoPlayerSettingsProviderNotifier extends StateNotifier<VideoPlayerSetti
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
debouncer.run(() {
|
if (!oldState.playerSame(value)) {
|
||||||
if (!oldState.playerSame(value)) {
|
ref.read(videoPlayerProvider.notifier).init();
|
||||||
ref.read(videoPlayerProvider.notifier).init();
|
}
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void setScreenBrightness(double? value) async {
|
void setScreenBrightness(double? value) async {
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@ import 'package:fladder/providers/settings/client_settings_provider.dart';
|
||||||
import 'package:fladder/providers/settings/video_player_settings_provider.dart';
|
import 'package:fladder/providers/settings/video_player_settings_provider.dart';
|
||||||
import 'package:fladder/providers/video_player_provider.dart';
|
import 'package:fladder/providers/video_player_provider.dart';
|
||||||
import 'package:fladder/src/video_player_helper.g.dart' hide PlaybackState;
|
import 'package:fladder/src/video_player_helper.g.dart' hide PlaybackState;
|
||||||
|
import 'package:fladder/util/debouncer.dart';
|
||||||
import 'package:fladder/util/localization_helper.dart';
|
import 'package:fladder/util/localization_helper.dart';
|
||||||
import 'package:fladder/wrappers/players/base_player.dart';
|
import 'package:fladder/wrappers/players/base_player.dart';
|
||||||
import 'package:fladder/wrappers/players/lib_mdk.dart'
|
import 'package:fladder/wrappers/players/lib_mdk.dart'
|
||||||
|
|
@ -53,6 +54,8 @@ class MediaControlsWrapper extends BaseAudioHandler implements VideoPlayerContro
|
||||||
|
|
||||||
bool initializedWrapper = false;
|
bool initializedWrapper = false;
|
||||||
|
|
||||||
|
final Debouncer debouncer = Debouncer(const Duration(seconds: 2));
|
||||||
|
|
||||||
Future<void> init() async {
|
Future<void> init() async {
|
||||||
if (!initializedWrapper) {
|
if (!initializedWrapper) {
|
||||||
initializedWrapper = true;
|
initializedWrapper = true;
|
||||||
|
|
@ -74,13 +77,15 @@ class MediaControlsWrapper extends BaseAudioHandler implements VideoPlayerContro
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
final player = switch (ref.read(videoPlayerSettingsProvider).wantedPlayer) {
|
debouncer.run(() {
|
||||||
PlayerOptions.libMDK => LibMDK(),
|
final player = switch (ref.read(videoPlayerSettingsProvider).wantedPlayer) {
|
||||||
PlayerOptions.libMPV => LibMPV(),
|
PlayerOptions.libMDK => LibMDK(),
|
||||||
PlayerOptions.nativePlayer => NativePlayer(),
|
PlayerOptions.libMPV => LibMPV(),
|
||||||
};
|
PlayerOptions.nativePlayer => NativePlayer(),
|
||||||
|
};
|
||||||
|
|
||||||
setup(player);
|
setup(player);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> dispose() async => _player?.dispose();
|
Future<void> dispose() async => _player?.dispose();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue