From 5f1251d82beaf06230f233e3d149a5c9f6aacbfb Mon Sep 17 00:00:00 2001 From: edde746 <86283021+edde746@users.noreply.github.com> Date: Fri, 31 Oct 2025 04:27:32 +0100 Subject: [PATCH] refactor: fix warnings --- lib/screens/settings_screen.dart | 136 +++++++++++++++------------ lib/services/settings_service.dart | 2 - lib/widgets/plex_video_controls.dart | 42 --------- 3 files changed, 75 insertions(+), 105 deletions(-) diff --git a/lib/screens/settings_screen.dart b/lib/screens/settings_screen.dart index fe106927..3e2752d8 100644 --- a/lib/screens/settings_screen.dart +++ b/lib/screens/settings_screen.dart @@ -252,38 +252,41 @@ class _SettingsScreenState extends State { content: Column( mainAxisSize: MainAxisSize.min, children: [ - RadioListTile( + 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( + 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( + 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 { content: Column( mainAxisSize: MainAxisSize.min, children: options.map((size) { - return RadioListTile( + 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 { ), 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 { ), 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), diff --git a/lib/services/settings_service.dart b/lib/services/settings_service.dart index d6202490..26a1db53 100644 --- a/lib/services/settings_service.dart +++ b/lib/services/settings_service.dart @@ -489,8 +489,6 @@ class SettingsService { return null; } - - return null; } diff --git a/lib/widgets/plex_video_controls.dart b/lib/widgets/plex_video_controls.dart index 6585c1b8..25850012 100644 --- a/lib/widgets/plex_video_controls.dart +++ b/lib/widgets/plex_video_controls.dart @@ -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 } } - 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) {