[Bugfix] Show playing item title in VideoPlayer_Controls

This commit is contained in:
PartyDonut 2024-10-11 13:36:36 +02:00
parent 663789ecab
commit ae1446ddbb
2 changed files with 48 additions and 38 deletions

View file

@ -1,7 +1,8 @@
// ignore_for_file: public_member_api_docs, sort_constructors_first // ignore_for_file: public_member_api_docs, sort_constructors_first
import 'package:fladder/util/humanize_duration.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:dart_mappable/dart_mappable.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/jellyfin/jellyfin_open_api.swagger.dart' as dto; 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/media_streams_model.dart';
import 'package:fladder/models/items/overview_model.dart'; import 'package:fladder/models/items/overview_model.dart';
import 'package:fladder/screens/details_screens/movie_detail_screen.dart'; import 'package:fladder/screens/details_screens/movie_detail_screen.dart';
import 'package:fladder/util/humanize_duration.dart';
import 'package:dart_mappable/dart_mappable.dart';
part 'movie_model.mapper.dart'; part 'movie_model.mapper.dart';

View file

@ -1,9 +1,19 @@
import 'dart:async'; import 'dart:async';
import 'dart:developer'; 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:async/async.dart';
import 'package:collection/collection.dart'; import 'package:collection/collection.dart';
import 'package:ficonsax/ficonsax.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/items/intro_skip_model.dart';
import 'package:fladder/models/media_playback_model.dart'; import 'package:fladder/models/media_playback_model.dart';
import 'package:fladder/models/playback/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/duration_extensions.dart';
import 'package:fladder/util/list_padding.dart'; import 'package:fladder/util/list_padding.dart';
import 'package:fladder/util/string_extensions.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 { class DesktopControls extends ConsumerStatefulWidget {
const DesktopControls({super.key}); const DesktopControls({super.key});
@ -235,36 +237,44 @@ class _DesktopControlsState extends ConsumerState<DesktopControls> {
child: Container( child: Container(
alignment: Alignment.topCenter, alignment: Alignment.topCenter,
height: 80, height: 80,
child: Padding( child: Column(
padding: const EdgeInsets.symmetric(horizontal: 12), children: [
child: Row( if (AdaptiveLayout.of(context).isDesktop)
crossAxisAlignment: CrossAxisAlignment.center, const Flexible(
children: [ child: Align(
IconButton( alignment: Alignment.topRight,
onPressed: () { child: DefaultTitleBar(),
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,
), ),
), ),
const SizedBox(width: 16), Padding(
if (!AdaptiveLayout.of(context).isDesktop) padding: const EdgeInsets.symmetric(horizontal: 12),
Flexible( child: Row(
child: Text( crossAxisAlignment: CrossAxisAlignment.center,
currentItem?.title ?? "", children: [
style: Theme.of(context).textTheme.titleLarge, 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,
),
), ),
) const SizedBox(width: 16),
else Flexible(
const Flexible(child: Align(alignment: Alignment.topRight, child: DefaultTitleBar())) child: Text(
], currentItem?.title ?? "",
), style: Theme.of(context).textTheme.titleLarge,
),
),
],
),
),
],
), ),
), ),
), ),