feat: re-implement keyboard navigation

This commit is contained in:
edde746
2025-12-07 13:57:52 +01:00
parent a373477105
commit 223065cab0
34 changed files with 4287 additions and 542 deletions
@@ -1,5 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:provider/provider.dart';
import '../../focus/dpad_navigator.dart';
import '../../services/plex_client.dart';
import '../../models/plex_playlist.dart';
import '../../models/plex_metadata.dart';
@@ -264,9 +266,20 @@ class _PlaylistDetailScreenState
}
}
KeyEventResult _handleKeyEvent(FocusNode node, KeyEvent event) {
if (event is KeyDownEvent && event.logicalKey.isBackKey) {
Navigator.pop(context);
return KeyEventResult.handled;
}
return KeyEventResult.ignored;
}
@override
Widget build(BuildContext context) {
return Scaffold(
return Focus(
autofocus: true,
onKeyEvent: _handleKeyEvent,
child: Scaffold(
body: CustomScrollView(
slivers: [
CustomAppBar(
@@ -348,6 +361,7 @@ class _PlaylistDetailScreenState
),
],
),
),
);
}
}