From 0e8502b087b4703cd298ed5dfe03d8dabc163403 Mon Sep 17 00:00:00 2001 From: bggRGjQaUbCoE Date: Fri, 27 Dec 2024 14:04:01 +0800 Subject: [PATCH] fix: media type Signed-off-by: bggRGjQaUbCoE --- lib/http/user.dart | 2 +- .../content/video/member_video_ctr.dart | 6 +++++- lib/pages/video/detail/controller.dart | 7 ++++--- lib/pages/video/detail/view.dart | 4 +--- lib/pages/video/detail/widgets/watch_later_list.dart | 9 +++++++-- 5 files changed, 18 insertions(+), 10 deletions(-) diff --git a/lib/http/user.dart b/lib/http/user.dart index a1aa733a..06226cb6 100644 --- a/lib/http/user.dart +++ b/lib/http/user.dart @@ -510,7 +510,7 @@ class UserHttp { // 稍后再看列表 static Future getMediaList({ - required int type, + required dynamic type, required int bizId, required int ps, int? oid, diff --git a/lib/pages/member/new/content/member_contribute/content/video/member_video_ctr.dart b/lib/pages/member/new/content/member_contribute/content/video/member_video_ctr.dart index a3304257..af18741c 100644 --- a/lib/pages/member/new/content/member_contribute/content/video/member_video_ctr.dart +++ b/lib/pages/member/new/content/member_contribute/content/video/member_video_ctr.dart @@ -113,7 +113,11 @@ class MemberVideoCtr extends CommonController { 'oid': IdUtils.bv2av(element.bvid!), // TODO: continue playing 'favTitle': '$username: ${title ?? episodicButton?.text ?? '播放全部'}', - 'count': count.value, + if (seriesId == null) 'count': count.value, + if (seasonId != null || seriesId != null) + 'mediaType': RegExp(r'page_type=([\d]+)') + .firstMatch('${episodicButton?.uri}') + ?.group(1), }, ); break; diff --git a/lib/pages/video/detail/controller.dart b/lib/pages/video/detail/controller.dart index 47516234..6615daa2 100644 --- a/lib/pages/video/detail/controller.dart +++ b/lib/pages/video/detail/controller.dart @@ -329,16 +329,17 @@ class VideoDetailController extends GetxController } void getMediaList() async { - if (mediaList.length >= Get.arguments['count']) { + if (Get.arguments['count'] != null && + mediaList.length >= Get.arguments['count']) { return; } var res = await UserHttp.getMediaList( - type: _mediaType, + type: Get.arguments['mediaType'] ?? _mediaType, bizId: Get.arguments['mediaId'] ?? -1, ps: 20, oid: mediaList.isEmpty ? null : mediaList.last.id, otype: mediaList.isEmpty ? null : mediaList.last.type, - desc: _mediaType == 2 ? false : true, + desc: _mediaType == 2 || Get.arguments['mediaType'] == '8' ? false : true, ); if (res['status']) { if (res['data'].isNotEmpty) { diff --git a/lib/pages/video/detail/view.dart b/lib/pages/video/detail/view.dart index 139e3f69..96114e8a 100644 --- a/lib/pages/video/detail/view.dart +++ b/lib/pages/video/detail/view.dart @@ -1415,9 +1415,7 @@ class _VideoDetailPageState extends State return Stack( children: [ introPanel(), - AnimatedPositioned( - duration: const Duration(milliseconds: 400), - curve: Curves.easeInOut, + Positioned( left: 12, right: 12, bottom: MediaQuery.of(context).padding.bottom + 12, diff --git a/lib/pages/video/detail/widgets/watch_later_list.dart b/lib/pages/video/detail/widgets/watch_later_list.dart index ff0ddf82..a40af0da 100644 --- a/lib/pages/video/detail/widgets/watch_later_list.dart +++ b/lib/pages/video/detail/widgets/watch_later_list.dart @@ -27,7 +27,7 @@ class MediaListPanel extends StatefulWidget { final String? panelTitle; final String? bvid; final VoidCallback loadMoreMedia; - final int count; + final int? count; @override State createState() => _MediaListPanelState(); @@ -84,7 +84,8 @@ class _MediaListPanelState extends State { itemBuilder: ((context, index) { var item = widget.mediaList[index]; if (index == widget.mediaList.length - 1 && - widget.mediaList.length < widget.count) { + (widget.count == null || + widget.mediaList.length < widget.count!)) { widget.loadMoreMedia(); } return InkWell( @@ -158,6 +159,10 @@ class _MediaListPanelState extends State { maxLines: 2, overflow: TextOverflow.ellipsis, style: TextStyle( + fontWeight: + item.bvid == widget.bvid + ? FontWeight.bold + : null, color: item.bvid == widget.bvid ? Theme.of(context) .colorScheme