From ae1446ddbb274aef3a40f130548f1318e655c4c3 Mon Sep 17 00:00:00 2001 From: PartyDonut Date: Fri, 11 Oct 2024 13:36:36 +0200 Subject: [PATCH] [Bugfix] Show playing item title in VideoPlayer_Controls --- lib/models/items/movie_model.dart | 6 +- .../video_player/video_player_controls.dart | 80 +++++++++++-------- 2 files changed, 48 insertions(+), 38 deletions(-) diff --git a/lib/models/items/movie_model.dart b/lib/models/items/movie_model.dart index 84125fb..a8278fd 100644 --- a/lib/models/items/movie_model.dart +++ b/lib/models/items/movie_model.dart @@ -1,7 +1,8 @@ // ignore_for_file: public_member_api_docs, sort_constructors_first -import 'package:fladder/util/humanize_duration.dart'; import 'package:flutter/material.dart'; + +import 'package:dart_mappable/dart_mappable.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:fladder/jellyfin/jellyfin_open_api.swagger.dart' as dto; @@ -13,8 +14,7 @@ import 'package:fladder/models/items/item_stream_model.dart'; import 'package:fladder/models/items/media_streams_model.dart'; import 'package:fladder/models/items/overview_model.dart'; import 'package:fladder/screens/details_screens/movie_detail_screen.dart'; - -import 'package:dart_mappable/dart_mappable.dart'; +import 'package:fladder/util/humanize_duration.dart'; part 'movie_model.mapper.dart'; diff --git a/lib/screens/video_player/video_player_controls.dart b/lib/screens/video_player/video_player_controls.dart index 355d094..79063fc 100644 --- a/lib/screens/video_player/video_player_controls.dart +++ b/lib/screens/video_player/video_player_controls.dart @@ -1,9 +1,19 @@ import 'dart:async'; import 'dart:developer'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/gestures.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; + import 'package:async/async.dart'; import 'package:collection/collection.dart'; import 'package:ficonsax/ficonsax.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:intl/intl.dart'; +import 'package:screen_brightness/screen_brightness.dart'; +import 'package:window_manager/window_manager.dart'; + import 'package:fladder/models/items/intro_skip_model.dart'; import 'package:fladder/models/media_playback_model.dart'; import 'package:fladder/models/playback/playback_model.dart'; @@ -21,14 +31,6 @@ import 'package:fladder/util/adaptive_layout.dart'; import 'package:fladder/util/duration_extensions.dart'; import 'package:fladder/util/list_padding.dart'; import 'package:fladder/util/string_extensions.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/gestures.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; -import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:intl/intl.dart'; -import 'package:screen_brightness/screen_brightness.dart'; -import 'package:window_manager/window_manager.dart'; class DesktopControls extends ConsumerStatefulWidget { const DesktopControls({super.key}); @@ -235,36 +237,44 @@ class _DesktopControlsState extends ConsumerState { child: Container( alignment: Alignment.topCenter, height: 80, - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 12), - child: Row( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - IconButton( - onPressed: () { - clear(); - ref - .read(mediaPlaybackProvider.notifier) - .update((state) => state.copyWith(state: VideoPlayerState.minimized)); - Navigator.of(context).pop(); - }, - icon: const Icon( - IconsaxOutline.arrow_down_1, - size: 24, + child: Column( + children: [ + if (AdaptiveLayout.of(context).isDesktop) + const Flexible( + child: Align( + alignment: Alignment.topRight, + child: DefaultTitleBar(), ), ), - const SizedBox(width: 16), - if (!AdaptiveLayout.of(context).isDesktop) - Flexible( - child: Text( - currentItem?.title ?? "", - style: Theme.of(context).textTheme.titleLarge, + Padding( + padding: const EdgeInsets.symmetric(horizontal: 12), + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + IconButton( + onPressed: () { + clear(); + ref + .read(mediaPlaybackProvider.notifier) + .update((state) => state.copyWith(state: VideoPlayerState.minimized)); + Navigator.of(context).pop(); + }, + icon: const Icon( + IconsaxOutline.arrow_down_1, + size: 24, + ), ), - ) - else - const Flexible(child: Align(alignment: Alignment.topRight, child: DefaultTitleBar())) - ], - ), + const SizedBox(width: 16), + Flexible( + child: Text( + currentItem?.title ?? "", + style: Theme.of(context).textTheme.titleLarge, + ), + ), + ], + ), + ), + ], ), ), ),