refactor: fix warnings

This commit is contained in:
edde746
2025-10-31 04:27:32 +01:00
parent 19ab6a21b9
commit 5f1251d82b
3 changed files with 75 additions and 105 deletions
+75 -61
View File
@@ -252,38 +252,41 @@ class _SettingsScreenState extends State<SettingsScreen> {
content: Column(
mainAxisSize: MainAxisSize.min,
children: [
RadioListTile<settings.ThemeMode>(
ListTile(
leading: Icon(
themeProvider.themeMode == settings.ThemeMode.system
? Icons.radio_button_checked
: Icons.radio_button_unchecked,
),
title: const Text('System'),
subtitle: const Text('Follow system settings'),
value: settings.ThemeMode.system,
groupValue: themeProvider.themeMode,
onChanged: (value) {
if (value != null) {
themeProvider.setThemeMode(value);
Navigator.pop(context);
}
onTap: () {
themeProvider.setThemeMode(settings.ThemeMode.system);
Navigator.pop(context);
},
),
RadioListTile<settings.ThemeMode>(
ListTile(
leading: Icon(
themeProvider.themeMode == settings.ThemeMode.light
? Icons.radio_button_checked
: Icons.radio_button_unchecked,
),
title: const Text('Light'),
value: settings.ThemeMode.light,
groupValue: themeProvider.themeMode,
onChanged: (value) {
if (value != null) {
themeProvider.setThemeMode(value);
Navigator.pop(context);
}
onTap: () {
themeProvider.setThemeMode(settings.ThemeMode.light);
Navigator.pop(context);
},
),
RadioListTile<settings.ThemeMode>(
ListTile(
leading: Icon(
themeProvider.themeMode == settings.ThemeMode.dark
? Icons.radio_button_checked
: Icons.radio_button_unchecked,
),
title: const Text('Dark'),
value: settings.ThemeMode.dark,
groupValue: themeProvider.themeMode,
onChanged: (value) {
if (value != null) {
themeProvider.setThemeMode(value);
Navigator.pop(context);
}
onTap: () {
themeProvider.setThemeMode(settings.ThemeMode.dark);
Navigator.pop(context);
},
),
],
@@ -313,23 +316,24 @@ class _SettingsScreenState extends State<SettingsScreen> {
content: Column(
mainAxisSize: MainAxisSize.min,
children: options.map((size) {
return RadioListTile<int>(
return ListTile(
leading: Icon(
currentSize == size
? Icons.radio_button_checked
: Icons.radio_button_unchecked,
),
title: Text('${size}MB'),
value: size,
groupValue: currentSize,
onChanged: (value) {
if (value != null) {
setState(() {
if (isVideo) {
_videoBufferSize = value;
_settingsService.setVideoBufferSize(value);
} else {
_audioBufferSize = value;
_settingsService.setAudioBufferSize(value);
}
});
Navigator.pop(context);
}
onTap: () {
setState(() {
if (isVideo) {
_videoBufferSize = size;
_settingsService.setVideoBufferSize(size);
} else {
_audioBufferSize = size;
_settingsService.setAudioBufferSize(size);
}
});
Navigator.pop(context);
},
);
}).toList(),
@@ -372,11 +376,15 @@ class _SettingsScreenState extends State<SettingsScreen> {
),
TextButton(
onPressed: () async {
final navigator = Navigator.of(context);
final messenger = ScaffoldMessenger.of(context);
await _settingsService.clearCache();
Navigator.pop(context);
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('Cache cleared successfully')),
);
if (mounted) {
navigator.pop();
messenger.showSnackBar(
const SnackBar(content: Text('Cache cleared successfully')),
);
}
},
child: const Text('Clear'),
),
@@ -402,14 +410,18 @@ class _SettingsScreenState extends State<SettingsScreen> {
),
TextButton(
onPressed: () async {
final navigator = Navigator.of(context);
final messenger = ScaffoldMessenger.of(context);
await _settingsService.resetAllSettings();
await _keyboardService.resetToDefaults();
Navigator.pop(context);
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('Settings reset successfully')),
);
// Reload settings
_loadSettings();
if (mounted) {
navigator.pop();
messenger.showSnackBar(
const SnackBar(content: Text('Settings reset successfully')),
);
// Reload settings
_loadSettings();
}
},
child: const Text('Reset'),
),
@@ -465,10 +477,11 @@ class _KeyboardShortcutsScreenState extends State<_KeyboardShortcutsScreen> {
actions: [
TextButton(
onPressed: () async {
final messenger = ScaffoldMessenger.of(context);
await widget.keyboardService.resetToDefaults();
await _loadHotkeys();
if (mounted) {
ScaffoldMessenger.of(context).showSnackBar(
messenger.showSnackBar(
const SnackBar(content: Text('Shortcuts reset to defaults')),
);
}
@@ -523,11 +536,14 @@ class _KeyboardShortcutsScreenState extends State<_KeyboardShortcutsScreen> {
actionName: widget.keyboardService.getActionDisplayName(action),
currentHotKey: currentHotkey,
onHotKeyRecorded: (newHotkey) async {
final navigator = Navigator.of(context);
final messenger = ScaffoldMessenger.of(context);
// Check for conflicts
final existingAction = widget.keyboardService.getActionForHotkey(newHotkey);
if (existingAction != null && existingAction != action) {
Navigator.pop(context);
ScaffoldMessenger.of(context).showSnackBar(
navigator.pop();
messenger.showSnackBar(
SnackBar(
content: Text('Shortcut already assigned to ${widget.keyboardService.getActionDisplayName(existingAction)}'),
),
@@ -544,15 +560,13 @@ class _KeyboardShortcutsScreenState extends State<_KeyboardShortcutsScreen> {
_hotkeys[action] = newHotkey;
});
if (mounted) {
Navigator.pop(context);
navigator.pop();
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text('Shortcut updated for ${widget.keyboardService.getActionDisplayName(action)}'),
),
);
}
messenger.showSnackBar(
SnackBar(
content: Text('Shortcut updated for ${widget.keyboardService.getActionDisplayName(action)}'),
),
);
}
},
onCancel: () => Navigator.pop(context),
-2
View File
@@ -489,8 +489,6 @@ class SettingsService {
return null;
}
return null;
}
-42
View File
@@ -1,7 +1,6 @@
import 'dart:async';
import 'dart:io' show Platform;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:media_kit/media_kit.dart';
import 'package:provider/provider.dart';
import 'package:window_manager/window_manager.dart';
@@ -334,47 +333,6 @@ class _PlexVideoControlsState extends State<PlexVideoControls>
}
}
void _togglePlayPause() {
final isPlaying = widget.player.state.playing;
if (isPlaying) {
widget.player.pause();
_hideTimer?.cancel(); // Cancel auto-hide when paused
} else {
widget.player.play();
_startHideTimer(); // Start auto-hide when playing
}
}
void _adjustVolume(double delta) {
final currentVolume = widget.player.state.volume;
final newVolume = (currentVolume + delta).clamp(0.0, 100.0);
widget.player.setVolume(newVolume);
}
void _toggleMute() {
final currentVolume = widget.player.state.volume;
if (currentVolume == 0) {
// Unmute to 100%
widget.player.setVolume(100.0);
} else {
// Mute
widget.player.setVolume(0.0);
}
}
void _seek(Duration offset) {
final currentPosition = widget.player.state.position;
final newPosition = currentPosition + offset;
// Clamp to valid range
final duration = widget.player.state.duration;
if (newPosition < Duration.zero) {
widget.player.seek(Duration.zero);
} else if (newPosition > duration) {
widget.player.seek(duration);
} else {
widget.player.seek(newPosition);
}
}
@override
Widget build(BuildContext context) {