From 08e5871bd60b4a1abb6e00334b3380d35324da6d Mon Sep 17 00:00:00 2001 From: guozhigq Date: Wed, 19 Jun 2024 23:17:36 +0800 Subject: [PATCH] =?UTF-8?q?opt:=20=E5=AD=97=E5=B9=95=E7=B1=BB=E5=88=AB?= =?UTF-8?q?=E8=A1=A5=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/models/common/subtitle_type.dart | 24 ++++++ .../video/detail/widgets/header_control.dart | 75 ++++++++++--------- 2 files changed, 64 insertions(+), 35 deletions(-) diff --git a/lib/models/common/subtitle_type.dart b/lib/models/common/subtitle_type.dart index 3db43dd2..ac3ee3e0 100644 --- a/lib/models/common/subtitle_type.dart +++ b/lib/models/common/subtitle_type.dart @@ -11,6 +11,12 @@ enum SubtitleType { enUS, // 中文繁体 zhTW, + // + en, + // + pt, + // + es, } extension SubtitleTypeExtension on SubtitleType { @@ -28,6 +34,12 @@ extension SubtitleTypeExtension on SubtitleType { return '英文(美国)'; case SubtitleType.zhTW: return '中文(繁体)'; + case SubtitleType.en: + return '英文'; + case SubtitleType.pt: + return '葡萄牙语'; + case SubtitleType.es: + return '西班牙语'; } } } @@ -47,6 +59,12 @@ extension SubtitleIdExtension on SubtitleType { return 'en-US'; case SubtitleType.zhTW: return 'zh-TW'; + case SubtitleType.en: + return 'en'; + case SubtitleType.pt: + return 'pt'; + case SubtitleType.es: + return 'es'; } } } @@ -66,6 +84,12 @@ extension SubtitleCodeExtension on SubtitleType { return 5; case SubtitleType.zhTW: return 6; + case SubtitleType.en: + return 7; + case SubtitleType.pt: + return 8; + case SubtitleType.es: + return 9; } } } diff --git a/lib/pages/video/detail/widgets/header_control.dart b/lib/pages/video/detail/widgets/header_control.dart index f51edff1..5072377a 100644 --- a/lib/pages/video/detail/widgets/header_control.dart +++ b/lib/pages/video/detail/widgets/header_control.dart @@ -433,42 +433,47 @@ class _HeaderControlState extends State { return AlertDialog( title: const Text('选择字幕'), contentPadding: const EdgeInsets.fromLTRB(0, 12, 0, 18), - content: StatefulBuilder(builder: (context, StateSetter setState) { - return len == 0 - ? const SizedBox( - height: 60, - child: Center( - child: Text('没有字幕'), - ), - ) - : Column( - mainAxisSize: MainAxisSize.min, - children: [ - RadioListTile( - value: -1, - title: const Text('关闭字幕'), - groupValue: tempThemeValue, - onChanged: (value) { - tempThemeValue = value!; - widget.controller?.toggleSubtitle(value); - Get.back(); - }, + content: StatefulBuilder( + builder: (context, StateSetter setState) { + return len == 0 + ? const SizedBox( + height: 60, + child: Center( + child: Text('没有字幕'), ), - ...widget.videoDetailCtr!.subtitles - .map((e) => RadioListTile( - value: e.code, - title: Text(e.title), - groupValue: tempThemeValue, - onChanged: (value) { - tempThemeValue = value!; - widget.controller?.toggleSubtitle(value); - Get.back(); - }, - )) - .toList(), - ], - ); - }), + ) + : SingleChildScrollView( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + RadioListTile( + value: -1, + title: const Text('关闭字幕'), + groupValue: tempThemeValue, + onChanged: (value) { + tempThemeValue = value!; + widget.controller?.toggleSubtitle(value); + Get.back(); + }, + ), + ...widget.videoDetailCtr!.subtitles + .map((e) => RadioListTile( + value: e.code, + title: Text(e.title), + groupValue: tempThemeValue, + onChanged: (value) { + tempThemeValue = value!; + widget.controller + ?.toggleSubtitle(value); + Get.back(); + }, + )) + .toList(), + ], + ), + ); + }, + ), ); }); }