fix: green issue

close #158
This commit is contained in:
edde746
2025-12-14 20:18:36 +01:00
parent 44245b2340
commit 6f6c403437
3 changed files with 37 additions and 8 deletions
@@ -1,10 +1,22 @@
package com.edde746.plezy package com.edde746.plezy
import android.os.Build
import android.os.Bundle
import io.flutter.embedding.android.FlutterActivity import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine import io.flutter.embedding.engine.FlutterEngine
import com.edde746.plezy.mpv.MpvPlayerPlugin import com.edde746.plezy.mpv.MpvPlayerPlugin
class MainActivity : FlutterActivity() { class MainActivity : FlutterActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Disable Android's default focus highlight ring that appears when using
// D-pad navigation so the Flutter UI can render its own focus state.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
window.decorView.defaultFocusHighlightEnabled = false
}
}
override fun configureFlutterEngine(flutterEngine: FlutterEngine) { override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
super.configureFlutterEngine(flutterEngine) super.configureFlutterEngine(flutterEngine)
flutterEngine.plugins.add(MpvPlayerPlugin()) flutterEngine.plugins.add(MpvPlayerPlugin())
+18 -8
View File
@@ -31,7 +31,9 @@ class SettingsScreen extends StatefulWidget {
class _SettingsScreenState extends State<SettingsScreen> { class _SettingsScreenState extends State<SettingsScreen> {
late settings.SettingsService _settingsService; late settings.SettingsService _settingsService;
late KeyboardShortcutsService _keyboardService; KeyboardShortcutsService? _keyboardService;
late final bool _keyboardShortcutsSupported =
KeyboardShortcutsService.isPlatformSupported();
bool _isLoading = true; bool _isLoading = true;
bool _enableDebugLogging = false; bool _enableDebugLogging = false;
@@ -59,7 +61,9 @@ class _SettingsScreenState extends State<SettingsScreen> {
Future<void> _loadSettings() async { Future<void> _loadSettings() async {
_settingsService = await settings.SettingsService.getInstance(); _settingsService = await settings.SettingsService.getInstance();
_keyboardService = await KeyboardShortcutsService.getInstance(); if (_keyboardShortcutsSupported) {
_keyboardService = await KeyboardShortcutsService.getInstance();
}
setState(() { setState(() {
_enableDebugLogging = _settingsService.getEnableDebugLogging(); _enableDebugLogging = _settingsService.getEnableDebugLogging();
@@ -99,8 +103,10 @@ class _SettingsScreenState extends State<SettingsScreen> {
const SizedBox(height: 24), const SizedBox(height: 24),
_buildDownloadsSection(), _buildDownloadsSection(),
const SizedBox(height: 24), const SizedBox(height: 24),
_buildKeyboardShortcutsSection(), if (_keyboardShortcutsSupported) ...[
const SizedBox(height: 24), _buildKeyboardShortcutsSection(),
const SizedBox(height: 24),
],
_buildAdvancedSection(), _buildAdvancedSection(),
const SizedBox(height: 24), const SizedBox(height: 24),
if (UpdateService.isUpdateCheckEnabled) ...[ if (UpdateService.isUpdateCheckEnabled) ...[
@@ -531,6 +537,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
} }
Widget _buildKeyboardShortcutsSection() { Widget _buildKeyboardShortcutsSection() {
if (_keyboardService == null) return const SizedBox.shrink();
return Card( return Card(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
@@ -854,7 +862,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
_settingsService.setSeekTimeSmall(parsed); _settingsService.setSeekTimeSmall(parsed);
}); });
// Reload keyboard shortcuts service to use new settings // Reload keyboard shortcuts service to use new settings
await _keyboardService.refreshFromStorage(); await _keyboardService?.refreshFromStorage();
if (dialogContext.mounted) { if (dialogContext.mounted) {
Navigator.pop(dialogContext); Navigator.pop(dialogContext);
} }
@@ -922,7 +930,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
_settingsService.setSeekTimeLarge(parsed); _settingsService.setSeekTimeLarge(parsed);
}); });
// Reload keyboard shortcuts service to use new settings // Reload keyboard shortcuts service to use new settings
await _keyboardService.refreshFromStorage(); await _keyboardService?.refreshFromStorage();
if (dialogContext.mounted) { if (dialogContext.mounted) {
Navigator.pop(dialogContext); Navigator.pop(dialogContext);
} }
@@ -1073,11 +1081,13 @@ class _SettingsScreenState extends State<SettingsScreen> {
} }
void _showKeyboardShortcutsDialog() { void _showKeyboardShortcutsDialog() {
if (_keyboardService == null) return;
Navigator.push( Navigator.push(
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: (context) => builder: (context) =>
_KeyboardShortcutsScreen(keyboardService: _keyboardService), _KeyboardShortcutsScreen(keyboardService: _keyboardService!),
), ),
); );
} }
@@ -1131,7 +1141,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
final navigator = Navigator.of(context); final navigator = Navigator.of(context);
final messenger = ScaffoldMessenger.of(context); final messenger = ScaffoldMessenger.of(context);
await _settingsService.resetAllSettings(); await _settingsService.resetAllSettings();
await _keyboardService.resetToDefaults(); await _keyboardService?.resetToDefaults();
if (mounted) { if (mounted) {
navigator.pop(); navigator.pop();
messenger.showSnackBar( messenger.showSnackBar(
@@ -1,3 +1,5 @@
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:hotkey_manager/hotkey_manager.dart'; import 'package:hotkey_manager/hotkey_manager.dart';
@@ -24,6 +26,11 @@ class KeyboardShortcutsService {
return _instance!; return _instance!;
} }
/// Keyboard shortcut customization is only supported on desktop platforms.
static bool isPlatformSupported() {
return Platform.isWindows || Platform.isLinux || Platform.isMacOS;
}
Future<void> _init() async { Future<void> _init() async {
_settingsService = await SettingsService.getInstance(); _settingsService = await SettingsService.getInstance();
// Ensure settings service is fully initialized before loading data // Ensure settings service is fully initialized before loading data