From a8e1d8b27575ca8f2469d495b6a17417945f4553 Mon Sep 17 00:00:00 2001 From: office-pc nix root Date: Sat, 5 Oct 2024 15:58:36 +0800 Subject: [PATCH] remove audio switch for live videos fix #611 --- .../components/mini_player_controls.dart | 7 +++- lib/videos/views/components/inner_view.dart | 1 + .../views/components/inner_view_tablet.dart | 1 + lib/videos/views/components/play_button.dart | 35 ++++++++++--------- .../views/components/video_metrics.dart | 3 +- 5 files changed, 29 insertions(+), 18 deletions(-) diff --git a/lib/player/views/components/mini_player_controls.dart b/lib/player/views/components/mini_player_controls.dart index f9a70e59..5dd53133 100644 --- a/lib/player/views/components/mini_player_controls.dart +++ b/lib/player/views/components/mini_player_controls.dart @@ -102,12 +102,17 @@ class MiniPlayerControls extends StatelessWidget { var cubit = context.read(); var isAudio = context .select((PlayerCubit value) => value.state.isAudio); + + var hasAudio = context.select((PlayerCubit value) => + !(value.state.currentlyPlaying?.liveNow ?? false)); + return Row( mainAxisAlignment: MainAxisAlignment.end, children: [ Visibility( // only for online videos - visible: player.state.currentlyPlaying != null, + visible: + player.state.currentlyPlaying != null && hasAudio, child: MultiValueSwitch( left: Icons.ondemand_video, right: Icons.audiotrack, diff --git a/lib/videos/views/components/inner_view.dart b/lib/videos/views/components/inner_view.dart index ea3a0716..eb7fd5f4 100644 --- a/lib/videos/views/components/inner_view.dart +++ b/lib/videos/views/components/inner_view.dart @@ -37,6 +37,7 @@ class VideoInnerView extends StatelessWidget { var playButton = PlayButton( icon: restart ? Icons.refresh : null, + hasAudio: !(video.liveNow ?? false), onPressed: restart ? cubit.restartVideo : cubit.playVideo, ); return Column( diff --git a/lib/videos/views/components/inner_view_tablet.dart b/lib/videos/views/components/inner_view_tablet.dart index ac259b62..69fe0c47 100644 --- a/lib/videos/views/components/inner_view_tablet.dart +++ b/lib/videos/views/components/inner_view_tablet.dart @@ -63,6 +63,7 @@ class VideoTabletInnerView extends StatelessWidget { children: [ PlayButton( icon: restart ? Icons.refresh : null, + hasAudio: !(video.liveNow ?? false), onPressed: restart ? cubit.restartVideo : cubit.playVideo, ), diff --git a/lib/videos/views/components/play_button.dart b/lib/videos/views/components/play_button.dart index 2f038788..9a331517 100644 --- a/lib/videos/views/components/play_button.dart +++ b/lib/videos/views/components/play_button.dart @@ -2,10 +2,12 @@ import 'package:auto_route/auto_route.dart'; import 'package:flutter/material.dart'; class PlayButton extends StatelessWidget { + final bool hasAudio; final Function(bool isAudio) onPressed; final IconData? icon; - const PlayButton({super.key, required this.onPressed, this.icon}); + const PlayButton( + {super.key, required this.onPressed, this.icon, this.hasAudio = true}); @override Widget build(BuildContext context) { @@ -13,23 +15,24 @@ class PlayButton extends StatelessWidget { return Stack( alignment: Alignment.center, children: [ - Padding( - padding: const EdgeInsets.only(left: 100.0, top: 60), - child: IconButton( - onPressed: () { - onPressed(true); - AutoRouter.of(context).maybePop(); - }, - style: ButtonStyle( - backgroundColor: WidgetStateProperty.resolveWith( - (states) => colorScheme.primary.withOpacity(1))), - icon: const Icon( - Icons.music_note, - size: 35, + if (hasAudio) + Padding( + padding: const EdgeInsets.only(left: 100.0, top: 60), + child: IconButton( + onPressed: () { + onPressed(true); + AutoRouter.of(context).maybePop(); + }, + style: ButtonStyle( + backgroundColor: WidgetStateProperty.resolveWith( + (states) => colorScheme.primary.withOpacity(1))), + icon: const Icon( + Icons.music_note, + size: 35, + ), + color: colorScheme.primaryContainer, ), - color: colorScheme.primaryContainer, ), - ), IconButton( onPressed: () { onPressed(false); diff --git a/lib/videos/views/components/video_metrics.dart b/lib/videos/views/components/video_metrics.dart index 955e5b65..34469440 100644 --- a/lib/videos/views/components/video_metrics.dart +++ b/lib/videos/views/components/video_metrics.dart @@ -103,7 +103,8 @@ class VideoMetrics extends StatelessWidget { } var date = video?.publishedText ?? ''; - if (date.isNotEmpty || video?.liveNow == true) { + if ((date.isNotEmpty && !date.startsWith('0')) || + video?.liveNow == true) { metrics.addAll([ (video?.liveNow ?? false) ? Visibility(