mirror of
https://github.com/gabehf/Fladder.git
synced 2026-03-07 21:48:14 -08:00
Init repo
This commit is contained in:
commit
764b6034e3
566 changed files with 212335 additions and 0 deletions
57
lib/providers/settings/video_player_settings_provider.dart
Normal file
57
lib/providers/settings/video_player_settings_provider.dart
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
import 'package:fladder/models/settings/video_player_settings.dart';
|
||||
import 'package:fladder/providers/shared_provider.dart';
|
||||
import 'package:fladder/providers/video_player_provider.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:screen_brightness/screen_brightness.dart';
|
||||
|
||||
final videoPlayerSettingsProvider =
|
||||
StateNotifierProvider<VideoPlayerSettingsProviderNotifier, VideoPlayerSettingsModel>((ref) {
|
||||
return VideoPlayerSettingsProviderNotifier(ref);
|
||||
});
|
||||
|
||||
class VideoPlayerSettingsProviderNotifier extends StateNotifier<VideoPlayerSettingsModel> {
|
||||
VideoPlayerSettingsProviderNotifier(this.ref) : super(const VideoPlayerSettingsModel());
|
||||
|
||||
final Ref ref;
|
||||
|
||||
@override
|
||||
set state(VideoPlayerSettingsModel value) {
|
||||
final oldState = super.state;
|
||||
super.state = value;
|
||||
ref.read(sharedUtilityProvider).videoPlayerSettings = value;
|
||||
if (!oldState.playerSame(value)) {
|
||||
ref.read(videoPlayerProvider.notifier).init();
|
||||
}
|
||||
}
|
||||
|
||||
void setScreenBrightness(double? value) async {
|
||||
state = state.copyWith(
|
||||
screenBrightness: () => value,
|
||||
);
|
||||
if (state.screenBrightness != null) {
|
||||
ScreenBrightness().setScreenBrightness(state.screenBrightness!);
|
||||
} else {
|
||||
ScreenBrightness().resetScreenBrightness();
|
||||
}
|
||||
}
|
||||
|
||||
setSavedBrightness() {
|
||||
if (state.screenBrightness != null) {
|
||||
ScreenBrightness().setScreenBrightness(state.screenBrightness!);
|
||||
}
|
||||
}
|
||||
|
||||
void setFillScreen(bool? value, {BuildContext? context}) {
|
||||
state = state.copyWith(fillScreen: value);
|
||||
}
|
||||
|
||||
void setHardwareAccel(bool? value) => state = state.copyWith(hardwareAccel: value);
|
||||
void setUseLibass(bool? value) => state = state.copyWith(useLibass: value);
|
||||
|
||||
void setFitType(BoxFit? value) => state = state.copyWith(videoFit: value);
|
||||
|
||||
void setVolume(double value) => state = state.copyWith(internalVolume: value);
|
||||
|
||||
void steppedVolume(int i) => state = state.copyWith(internalVolume: (state.volume + i).clamp(0, 100));
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue