Merge branch 'fix'

This commit is contained in:
guozhigq
2024-06-20 23:54:39 +08:00
4 changed files with 75 additions and 35 deletions

View File

@ -9,6 +9,14 @@ enum SubtitleType {
zhHans,
// 英文(美国)
enUS,
// 中文繁体
zhTW,
//
en,
//
pt,
//
es,
}
extension SubtitleTypeExtension on SubtitleType {
@ -24,6 +32,14 @@ extension SubtitleTypeExtension on SubtitleType {
return '中文(简体)';
case SubtitleType.enUS:
return '英文(美国)';
case SubtitleType.zhTW:
return '中文(繁体)';
case SubtitleType.en:
return '英文';
case SubtitleType.pt:
return '葡萄牙语';
case SubtitleType.es:
return '西班牙语';
}
}
}
@ -41,6 +57,14 @@ extension SubtitleIdExtension on SubtitleType {
return 'zh-Hans';
case SubtitleType.enUS:
return 'en-US';
case SubtitleType.zhTW:
return 'zh-TW';
case SubtitleType.en:
return 'en';
case SubtitleType.pt:
return 'pt';
case SubtitleType.es:
return 'es';
}
}
}
@ -58,6 +82,14 @@ extension SubtitleCodeExtension on SubtitleType {
return 4;
case SubtitleType.enUS:
return 5;
case SubtitleType.zhTW:
return 6;
case SubtitleType.en:
return 7;
case SubtitleType.pt:
return 8;
case SubtitleType.es:
return 9;
}
}
}

View File

@ -225,6 +225,8 @@ class BangumiIntroController extends GetxController {
videoDetailCtr.oid.value = aid;
videoDetailCtr.cover.value = cover;
videoDetailCtr.queryVideoUrl();
videoDetailCtr.getSubtitle();
videoDetailCtr.setSubtitleContent();
// 重新请求评论
try {
/// 未渲染回复组件时可能异常

View File

@ -436,6 +436,7 @@ class VideoIntroController extends GetxController {
videoDetailCtr.cover.value = cover;
videoDetailCtr.queryVideoUrl();
videoDetailCtr.getSubtitle();
videoDetailCtr.setSubtitleContent();
// 重新请求评论
try {
/// 未渲染回复组件时可能异常

View File

@ -433,42 +433,47 @@ class _HeaderControlState extends State<HeaderControl> {
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(),
],
),
);
},
),
);
});
}