Merge branch 'develop' into feat-speed-shortcuts-and-enhancement

This commit is contained in:
Julien9969 2025-09-15 21:08:43 +02:00 committed by GitHub
commit 362e97730c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 39 additions and 41 deletions

View file

@ -1294,6 +1294,7 @@
"usePostersForLibraryIconsDesc": "Show posters instead of icons for libraries", "usePostersForLibraryIconsDesc": "Show posters instead of icons for libraries",
"offline": "Offline", "offline": "Offline",
"shortCuts": "Shortcuts", "shortCuts": "Shortcuts",
"keyboardShortCuts": "Keyboard shortcuts",
"skipForwardLength": "Skip forward length", "skipForwardLength": "Skip forward length",
"skipBackLength": "Skip back length", "skipBackLength": "Skip back length",
"playPause": "Play/Pause", "playPause": "Play/Pause",

View file

@ -206,29 +206,36 @@ class _PlayerSettingsPageState extends ConsumerState<PlayerSettingsPage> {
)), )),
), ),
if (AdaptiveLayout.inputDeviceOf(context) == InputDevice.pointer) if (AdaptiveLayout.inputDeviceOf(context) == InputDevice.pointer)
...VideoHotKeys.values.map( ExpansionTile(
(entry) => Padding( title: Text(
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), context.localized.keyboardShortCuts,
child: Row( style: Theme.of(context).textTheme.titleLarge,
children: [
Expanded(
child: Text(
entry.label(context),
style: Theme.of(context).textTheme.titleLarge,
),
),
Flexible(
child: KeyCombinationWidget(
currentKey: videoSettings.hotKeys[entry],
defaultKey: videoSettings.defaultShortCuts[entry]!,
onChanged: (value) =>
ref.read(videoPlayerSettingsProvider.notifier).setShortcuts(MapEntry(entry, value)),
),
)
],
),
), ),
) children: VideoHotKeys.values.map(
(entry) => Padding(
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
child: Row(
children: [
Expanded(
child: Text(
entry.label(context),
style: Theme.of(context).textTheme.titleMedium,
),
),
Flexible(
child: KeyCombinationWidget(
currentKey: videoSettings.hotKeys[entry],
defaultKey: videoSettings.defaultShortCuts[entry]!,
onChanged: (value) => ref
.read(videoPlayerSettingsProvider.notifier)
.setShortcuts(MapEntry(entry, value)),
),
),
],
),
),
).toList(),
),
], ],
), ),
const SizedBox(height: 12), const SizedBox(height: 12),

View file

@ -1,3 +1,4 @@
import 'package:fladder/models/items/movie_model.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
@ -200,22 +201,6 @@ class _PosterImageState extends ConsumerState<PosterImage> {
], ],
), ),
), ),
if (widget.poster.unWatched)
Align(
alignment: Alignment.topLeft,
child: StatusCard(
color: Colors.amber,
child: Padding(
padding: const EdgeInsets.all(10),
child: Container(
decoration: const BoxDecoration(
shape: BoxShape.circle,
color: Colors.amber,
),
),
),
),
),
if (widget.inlineTitle) if (widget.inlineTitle)
IgnorePointer( IgnorePointer(
child: Align( child: Align(
@ -230,7 +215,8 @@ class _PosterImageState extends ConsumerState<PosterImage> {
), ),
), ),
), ),
if (widget.poster.unPlayedItemCount != null && widget.poster is SeriesModel) if ((widget.poster.unPlayedItemCount != null && widget.poster is SeriesModel)
|| (widget.poster is MovieModel && !widget.poster.unWatched))
IgnorePointer( IgnorePointer(
child: Align( child: Align(
alignment: Alignment.topRight, alignment: Alignment.topRight,

View file

@ -53,6 +53,10 @@ class FladderTheme {
margin: EdgeInsets.zero, margin: EdgeInsets.zero,
shape: smallShape, shape: smallShape,
), ),
expansionTileTheme: ExpansionTileThemeData(
shape: RoundedRectangleBorder(borderRadius: FladderTheme.defaultShape.borderRadius),
collapsedShape: RoundedRectangleBorder(borderRadius: FladderTheme.defaultShape.borderRadius),
),
progressIndicatorTheme: const ProgressIndicatorThemeData(), progressIndicatorTheme: const ProgressIndicatorThemeData(),
floatingActionButtonTheme: FloatingActionButtonThemeData( floatingActionButtonTheme: FloatingActionButtonThemeData(
backgroundColor: scheme?.secondaryContainer, backgroundColor: scheme?.secondaryContainer,
@ -62,7 +66,7 @@ class FladderTheme {
snackBarTheme: SnackBarThemeData( snackBarTheme: SnackBarThemeData(
backgroundColor: scheme?.secondary, backgroundColor: scheme?.secondary,
behavior: SnackBarBehavior.fixed, behavior: SnackBarBehavior.fixed,
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), shape: RoundedRectangleBorder(borderRadius: FladderTheme.defaultShape.borderRadius),
elevation: 5, elevation: 5,
dismissDirection: DismissDirection.horizontal, dismissDirection: DismissDirection.horizontal,
), ),

View file

@ -158,7 +158,7 @@ class _ProgressFloatingButtonState extends ConsumerState<ProgressFloatingButton>
} }
: null, : null,
child: FloatingActionButton( child: FloatingActionButton(
heroTag: "Progress_Floating_Button", heroTag: null,
onPressed: isActive ? timer.cancel : timer.play, onPressed: isActive ? timer.cancel : timer.play,
child: Stack( child: Stack(
fit: StackFit.expand, fit: StackFit.expand,