Merge branch 'fix-seasonChange'

This commit is contained in:
guozhigq
2024-12-01 20:56:43 +08:00
3 changed files with 21 additions and 13 deletions

View File

@ -617,6 +617,7 @@ class VideoIntroController extends GetxController {
// 播放器底栏 选集 回调
void showEposideHandler() {
late List episodes;
int currentEpisodeIndex = 0;
VideoEpidoesType dataType = VideoEpidoesType.videoEpisode;
if (videoDetail.value.ugcSeason != null) {
dataType = VideoEpidoesType.videoEpisode;
@ -625,6 +626,7 @@ class VideoIntroController extends GetxController {
final List<EpisodeItem> episodesList = sections[i].episodes!;
for (int j = 0; j < episodesList.length; j++) {
if (episodesList[j].cid == lastPlayCid.value) {
currentEpisodeIndex = i;
episodes = episodesList;
continue;
}
@ -644,6 +646,7 @@ class VideoIntroController extends GetxController {
sheetHeight: Get.size.height,
isFullScreen: true,
ugcSeason: ugcSeason,
currentEpisodeIndex: currentEpisodeIndex,
changeFucCall: (item, index) {
if (dataType == VideoEpidoesType.videoEpisode) {
changeSeasonOrbangu(

View File

@ -42,23 +42,14 @@ class _SeasonPanelState extends State<SeasonPanel> {
_videoDetailController = Get.find<VideoDetailController>(tag: heroTag);
/// 根据 cid 找到对应集,找到对应 episodes
final List<SectionItem> sections = widget.ugcSeason.sections!;
for (int i = 0; i < sections.length; i++) {
final List<EpisodeItem> episodesList = sections[i].episodes!;
for (int j = 0; j < episodesList.length; j++) {
if (episodesList[j].cid == cid) {
currentEpisodeIndex = i;
episodes = episodesList;
continue;
}
}
}
getCurrentEpisodeIndex();
/// 取对应 season_id 的 episodes
getCurrentIndex();
_videoDetailController.cid.listen((int p0) {
cid = p0;
getCurrentIndex();
getCurrentEpisodeIndex();
});
}
@ -94,6 +85,21 @@ class _SeasonPanelState extends State<SeasonPanel> {
}
}
// 获取currentEpisodeIndex
void getCurrentEpisodeIndex() {
final List<SectionItem> sections = widget.ugcSeason.sections!;
for (int i = 0; i < sections.length; i++) {
final List<EpisodeItem> episodesList = sections[i].episodes!;
for (int j = 0; j < episodesList.length; j++) {
if (episodesList[j].cid == cid) {
currentEpisodeIndex = i;
episodes = episodesList;
continue;
}
}
}
}
Widget buildEpisodeListItem(
EpisodeItem episode,
int index,