diff --git a/lib/pages/save_panel/view.dart b/lib/pages/save_panel/view.dart index 23b6347c4..11a5d332c 100644 --- a/lib/pages/save_panel/view.dart +++ b/lib/pages/save_panel/view.dart @@ -7,7 +7,6 @@ import 'package:PiliPlus/grpc/bilibili/main/community/reply/v1.pb.dart' show ReplyInfo; import 'package:PiliPlus/models/common/search_type.dart'; import 'package:PiliPlus/models/dynamics/result.dart'; -import 'package:PiliPlus/pages/common/common_intro_controller.dart'; import 'package:PiliPlus/pages/dynamics/widgets/dynamic_panel.dart'; import 'package:PiliPlus/pages/video/introduction/pgc/controller.dart'; import 'package:PiliPlus/pages/video/introduction/ugc/controller.dart'; @@ -91,17 +90,26 @@ class _SavePanelState extends State { if (currentRoute.startsWith('/video')) { try { final heroTag = Get.arguments['heroTag']; - CommonIntroController ctr; if (Get.arguments['videoType'] == SearchType.media_bangumi) { - ctr = Get.find(tag: heroTag); + final ctr = Get.find(tag: heroTag); + final pgcItem = ctr.pgcItem; + final episode = pgcItem.episodes!.firstWhere( + (e) => e.cid == ctr.cid.value, + ); + cover = episode.cover; + title = + episode.shareCopy ?? + '${pgcItem.title} ${episode.showTitle ?? episode.title}'; + pubdate = episode.pubTime; + uname = pgcItem.upInfo?.uname; } else { - ctr = Get.find(tag: heroTag); + final ctr = Get.find(tag: heroTag); + final videoDetail = ctr.videoDetail.value; + cover = videoDetail.pic; + title = videoDetail.title; + pubdate = videoDetail.pubdate; + uname = videoDetail.owner?.name; } - final videoDetail = ctr.videoDetail.value; - cover = videoDetail.pic; - title = videoDetail.title; - pubdate = videoDetail.pubdate; - uname = videoDetail.owner?.name; } catch (_) {} uri = 'bilibili://video/${reply.oid}?comment_root_id=${hasRoot ? reply.root : reply.id}${hasRoot ? '&comment_secondary_id=${reply.id}' : ''}';