diff --git a/lib/common/widgets/video_card_h.dart b/lib/common/widgets/video_card_h.dart index c4a0be73d..9ed735e40 100644 --- a/lib/common/widgets/video_card_h.dart +++ b/lib/common/widgets/video_card_h.dart @@ -41,7 +41,6 @@ class VideoCardH extends StatelessWidget { try { type = videoItem.type; } catch (_) {} - final String heroTag = Utils.makeHeroTag(aid); return Stack(children: [ Semantics( label: Utils.videoItemSemantics(videoItem), @@ -81,8 +80,13 @@ class VideoCardH extends StatelessWidget { try { final int cid = videoItem.cid ?? await SearchHttp.ab2c(aid: aid, bvid: bvid); - Get.toNamed('/video?bvid=$bvid&cid=$cid', - arguments: {'videoItem': videoItem, 'heroTag': heroTag}); + Get.toNamed( + '/video?bvid=$bvid&cid=$cid', + arguments: { + 'videoItem': videoItem, + 'heroTag': Utils.makeHeroTag(aid) + }, + ); } catch (err) { SmartDialog.showToast(err.toString()); } @@ -105,13 +109,10 @@ class VideoCardH extends StatelessWidget { final double maxHeight = boxConstraints.maxHeight; return Stack( children: [ - Hero( - tag: heroTag, - child: NetworkImgLayer( - src: videoItem.pic as String, - width: maxWidth, - height: maxHeight, - ), + NetworkImgLayer( + src: videoItem.pic as String, + width: maxWidth, + height: maxHeight, ), if (videoItem.duration != 0) PBadge( diff --git a/lib/common/widgets/video_card_h_grpc.dart b/lib/common/widgets/video_card_h_grpc.dart index 5f252d8dc..6db6fa503 100644 --- a/lib/common/widgets/video_card_h_grpc.dart +++ b/lib/common/widgets/video_card_h_grpc.dart @@ -59,13 +59,6 @@ class VideoCardHGrpc extends StatelessWidget { } try { PiliScheme.routePush(Uri.parse(videoItem.smallCoverV5.base.uri)); - // final int cid = - // videoItem.smallCoverV5.base.playerArgs.cid.toInt() ?? - // await SearchHttp.ab2c(aid: aid, bvid: bvid); - // Get.toNamed('/video?bvid=$bvid&cid=$cid', - // arguments: {'heroTag': heroTag}); - // Get.toNamed('/video?bvid=$bvid&cid=$cid', - // arguments: {'videoItem': videoItem, 'heroTag': heroTag}); } catch (err) { SmartDialog.showToast(err.toString()); } diff --git a/lib/common/widgets/video_card_h_member_video.dart b/lib/common/widgets/video_card_h_member_video.dart index cef527c4c..3ecb71038 100644 --- a/lib/common/widgets/video_card_h_member_video.dart +++ b/lib/common/widgets/video_card_h_member_video.dart @@ -27,7 +27,6 @@ class VideoCardHMemberVideo extends StatelessWidget { Widget build(BuildContext context) { final int aid = int.tryParse(videoItem.param ?? '') ?? -1; final String bvid = videoItem.bvid ?? ''; - final String heroTag = Utils.makeHeroTag(aid); return Stack( children: [ InkWell( @@ -42,8 +41,12 @@ class VideoCardHMemberVideo extends StatelessWidget { return; } try { - Get.toNamed('/video?bvid=$bvid&cid=${videoItem.firstCid}', - arguments: {'heroTag': heroTag}); + Get.toNamed( + '/video?bvid=$bvid&cid=${videoItem.firstCid}', + arguments: { + 'heroTag': Utils.makeHeroTag(aid), + }, + ); } catch (err) { SmartDialog.showToast(err.toString()); } @@ -68,14 +71,11 @@ class VideoCardHMemberVideo extends StatelessWidget { final double maxHeight = boxConstraints.maxHeight; return Stack( children: [ - Hero( - tag: heroTag, - child: NetworkImgLayer( - src: videoItem.cover, - // videoItem.season?['cover'] ?? videoItem.cover, - width: maxWidth, - height: maxHeight, - ), + NetworkImgLayer( + src: videoItem.cover, + // videoItem.season?['cover'] ?? videoItem.cover, + width: maxWidth, + height: maxHeight, ), // if (videoItem.season != null) // PBadge( diff --git a/lib/common/widgets/video_card_v.dart b/lib/common/widgets/video_card_v.dart index dff69dd87..be8f48049 100644 --- a/lib/common/widgets/video_card_v.dart +++ b/lib/common/widgets/video_card_v.dart @@ -81,11 +81,14 @@ class VideoCardV extends StatelessWidget { if (cid == -1) { cid = await SearchHttp.ab2c(aid: videoItem.aid, bvid: bvid); } - Get.toNamed('/video?bvid=$bvid&cid=$cid', arguments: { - // 'videoItem': videoItem, - 'pic': videoItem.pic, - 'heroTag': heroTag, - }); + Get.toNamed( + '/video?bvid=$bvid&cid=$cid', + arguments: { + // 'videoItem': videoItem, + 'pic': videoItem.pic, + 'heroTag': heroTag, + }, + ); break; // 动态 case 'picture': @@ -145,7 +148,6 @@ class VideoCardV extends StatelessWidget { @override Widget build(BuildContext context) { - String heroTag = Utils.makeHeroTag(videoItem.id); return Stack(children: [ Semantics( label: Utils.videoItemSemantics(videoItem), @@ -158,7 +160,7 @@ class VideoCardV extends StatelessWidget { clipBehavior: Clip.hardEdge, margin: EdgeInsets.zero, child: InkWell( - onTap: () async => onPushDetail(heroTag), + onTap: () => onPushDetail(Utils.makeHeroTag(videoItem.id)), onLongPress: () => imageSaveDialog( context: context, title: videoItem.title, @@ -173,13 +175,10 @@ class VideoCardV extends StatelessWidget { double maxHeight = boxConstraints.maxHeight; return Stack( children: [ - Hero( - tag: heroTag, - child: NetworkImgLayer( - src: videoItem.pic, - width: maxWidth, - height: maxHeight, - ), + NetworkImgLayer( + src: videoItem.pic, + width: maxWidth, + height: maxHeight, ), if (videoItem.duration > 0) PBadge( diff --git a/lib/common/widgets/video_card_v_member_home.dart b/lib/common/widgets/video_card_v_member_home.dart index 62735709d..e10a60d35 100644 --- a/lib/common/widgets/video_card_v_member_home.dart +++ b/lib/common/widgets/video_card_v_member_home.dart @@ -64,11 +64,14 @@ class VideoCardVMemberHome extends StatelessWidget { // break; case 'av': String bvid = videoItem.bvid ?? ''; - Get.toNamed('/video?bvid=$bvid&cid=${videoItem.firstCid}', arguments: { - // 'videoItem': videoItem, - 'pic': videoItem.cover, - 'heroTag': heroTag, - }); + Get.toNamed( + '/video?bvid=$bvid&cid=${videoItem.firstCid}', + arguments: { + // 'videoItem': videoItem, + 'pic': videoItem.cover, + 'heroTag': heroTag, + }, + ); break; // 动态 // case 'picture': @@ -128,7 +131,6 @@ class VideoCardVMemberHome extends StatelessWidget { @override Widget build(BuildContext context) { - String heroTag = Utils.makeHeroTag(videoItem.bvid); // List actions = // VideoCustomActions(videoItem, context).actions; return Stack(children: [ @@ -143,7 +145,7 @@ class VideoCardVMemberHome extends StatelessWidget { clipBehavior: Clip.hardEdge, margin: EdgeInsets.zero, child: InkWell( - onTap: () async => onPushDetail(heroTag), + onTap: () => onPushDetail(Utils.makeHeroTag(videoItem.bvid)), onLongPress: () => imageSaveDialog( context: context, title: videoItem.title, @@ -158,13 +160,10 @@ class VideoCardVMemberHome extends StatelessWidget { double maxHeight = boxConstraints.maxHeight; return Stack( children: [ - Hero( - tag: heroTag, - child: NetworkImgLayer( - src: videoItem.cover, - width: maxWidth, - height: maxHeight, - ), + NetworkImgLayer( + src: videoItem.cover, + width: maxWidth, + height: maxHeight, ), if ((videoItem.duration ?? -1) > 0) PBadge( diff --git a/lib/pages/dynamics/controller.dart b/lib/pages/dynamics/controller.dart index d18baf36d..a7290a79e 100644 --- a/lib/pages/dynamics/controller.dart +++ b/lib/pages/dynamics/controller.dart @@ -89,8 +89,13 @@ class DynamicsController extends GetxController String cover = item.modules.moduleDynamic.major.archive.cover; try { int cid = await SearchHttp.ab2c(bvid: bvid); - Utils.toDupNamed('/video?bvid=$bvid&cid=$cid', - arguments: {'pic': cover, 'heroTag': bvid}); + Utils.toDupNamed( + '/video?bvid=$bvid&cid=$cid', + arguments: { + 'pic': cover, + 'heroTag': Utils.makeHeroTag(bvid), + }, + ); } catch (err) { SmartDialog.showToast(err.toString()); } @@ -162,8 +167,13 @@ class DynamicsController extends GetxController String bvid = IdUtils.av2bv(aid); String cover = ugcSeason.cover!; int cid = await SearchHttp.ab2c(bvid: bvid); - Utils.toDupNamed('/video?bvid=$bvid&cid=$cid', - arguments: {'pic': cover, 'heroTag': bvid}); + Utils.toDupNamed( + '/video?bvid=$bvid&cid=$cid', + arguments: { + 'pic': cover, + 'heroTag': Utils.makeHeroTag(bvid), + }, + ); break; /// 番剧查看 diff --git a/lib/pages/dynamics/widgets/additional_panel.dart b/lib/pages/dynamics/widgets/additional_panel.dart index e71f56b9f..64401f2bd 100644 --- a/lib/pages/dynamics/widgets/additional_panel.dart +++ b/lib/pages/dynamics/widgets/additional_panel.dart @@ -1,3 +1,4 @@ +import 'package:PiliPalaX/utils/utils.dart'; import 'package:flutter/material.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:get/get.dart'; @@ -34,8 +35,13 @@ Widget addWidget(item, context, type, {floor = 1}) { String cover = dynamicProperty[type].cover; try { int cid = await SearchHttp.ab2c(bvid: bvid); - Get.toNamed('/video?bvid=$bvid&cid=$cid', - arguments: {'pic': cover, 'heroTag': bvid}); + Get.toNamed( + '/video?bvid=$bvid&cid=$cid', + arguments: { + 'pic': cover, + 'heroTag': Utils.makeHeroTag(bvid), + }, + ); } catch (err) { SmartDialog.showToast(err.toString()); } diff --git a/lib/pages/dynamics/widgets/rich_node_panel.dart b/lib/pages/dynamics/widgets/rich_node_panel.dart index 3d7f0d9ce..1bdd535ac 100644 --- a/lib/pages/dynamics/widgets/rich_node_panel.dart +++ b/lib/pages/dynamics/widgets/rich_node_panel.dart @@ -1,4 +1,5 @@ import 'package:PiliPalaX/models/dynamics/result.dart'; +import 'package:PiliPalaX/utils/utils.dart'; import 'package:flutter/material.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:get/get.dart'; @@ -237,8 +238,13 @@ InlineSpan? richNode(item, context) { onTap: () async { try { int cid = await SearchHttp.ab2c(bvid: i.rid); - Get.toNamed('/video?bvid=${i.rid}&cid=$cid', - arguments: {'pic': null, 'heroTag': i.rid}); + Get.toNamed( + '/video?bvid=${i.rid}&cid=$cid', + arguments: { + 'pic': null, + 'heroTag': Utils.makeHeroTag(i.rid), + }, + ); } catch (err) { SmartDialog.showToast(err.toString()); } diff --git a/lib/pages/fav_detail/controller.dart b/lib/pages/fav_detail/controller.dart index 5d0614b09..a40e86dee 100644 --- a/lib/pages/fav_detail/controller.dart +++ b/lib/pages/fav_detail/controller.dart @@ -136,12 +136,11 @@ class FavDetailController extends MultiSelectController { if (element.bvid != list.first.bvid) { SmartDialog.showToast('已跳过不支持播放的视频'); } - final String heroTag = Utils.makeHeroTag(element.bvid); Get.toNamed( '/video?bvid=${element.bvid}&cid=${element.cid}', arguments: { 'videoItem': element, - 'heroTag': heroTag, + 'heroTag': Utils.makeHeroTag(element.bvid), 'sourceType': 'fav', 'mediaId': item.value.id, 'oid': element.id, diff --git a/lib/pages/fav_detail/widget/fav_video_card.dart b/lib/pages/fav_detail/widget/fav_video_card.dart index 1796a39c2..5f88824e4 100644 --- a/lib/pages/fav_detail/widget/fav_video_card.dart +++ b/lib/pages/fav_detail/widget/fav_video_card.dart @@ -37,7 +37,6 @@ class FavVideoCardH extends StatelessWidget { Widget build(BuildContext context) { int id = videoItem.id; String bvid = videoItem.bvid ?? IdUtils.av2bv(id); - String heroTag = Utils.makeHeroTag(id); return InkWell( onTap: () async { if (onTap != null) { @@ -68,12 +67,16 @@ class FavVideoCardH extends StatelessWidget { // if (seasonId != null) { // parameters['seasonId'] = seasonId.toString(); // } - Get.toNamed('/video', parameters: parameters, arguments: { - 'videoItem': videoItem, - 'heroTag': heroTag, - 'videoType': - epId != null ? SearchType.media_bangumi : SearchType.video, - }); + Get.toNamed( + '/video', + parameters: parameters, + arguments: { + 'videoItem': videoItem, + 'heroTag': Utils.makeHeroTag(id), + 'videoType': + epId != null ? SearchType.media_bangumi : SearchType.video, + }, + ); }, onLongPress: () { if (onLongPress != null) { @@ -109,13 +112,10 @@ class FavVideoCardH extends StatelessWidget { double maxHeight = boxConstraints.maxHeight; return Stack( children: [ - Hero( - tag: heroTag, - child: NetworkImgLayer( - src: videoItem.pic, - width: maxWidth, - height: maxHeight, - ), + NetworkImgLayer( + src: videoItem.pic, + width: maxWidth, + height: maxHeight, ), PBadge( text: Utils.timeFormat(videoItem.duration!), diff --git a/lib/pages/history/widgets/item.dart b/lib/pages/history/widgets/item.dart index 45b3cab54..01b37bd9e 100644 --- a/lib/pages/history/widgets/item.dart +++ b/lib/pages/history/widgets/item.dart @@ -32,7 +32,6 @@ class HistoryItem extends StatelessWidget { Widget build(BuildContext context) { int aid = videoItem.history.oid; String bvid = videoItem.history.bvid ?? IdUtils.av2bv(aid); - String heroTag = Utils.makeHeroTag(aid); return InkWell( onTap: () async { if (ctr is MultiSelectController && ctr!.enableMultiSelect.value) { @@ -79,26 +78,19 @@ class HistoryItem extends StatelessWidget { var result = await VideoHttp.videoIntro(bvid: bvid); if (result['status']) { String bvid = result['data'].bvid!; - int cid = result['data'].cid!; - // String pic = result['data'].pic!; - String heroTag = Utils.makeHeroTag(cid); var epid = result['data'].epId; if (epid != null) { Utils.viewBangumi(epId: epid); - // Get.toNamed( - // '/video?bvid=$bvid&cid=$cid&seasonId=${result['data'].seasonId}&epId=${result['data'].epId}', - // arguments: { - // 'pic': pic, - // 'heroTag': heroTag, - // 'videoType': SearchType.media_bangumi, - // }, - // ); } else { int cid = videoItem.history.cid ?? - // videoItem.history.oid ?? await SearchHttp.ab2c(aid: aid, bvid: bvid); - Get.toNamed('/video?bvid=$bvid&cid=$cid', - arguments: {'heroTag': heroTag, 'pic': videoItem.cover}); + Get.toNamed( + '/video?bvid=$bvid&cid=$cid', + arguments: { + 'heroTag': Utils.makeHeroTag(cid), + 'pic': videoItem.cover, + }, + ); } } else { SmartDialog.showToast(result['msg']); @@ -147,8 +139,13 @@ class HistoryItem extends StatelessWidget { int cid = videoItem.history.cid ?? // videoItem.history.oid ?? await SearchHttp.ab2c(aid: aid, bvid: bvid); - Get.toNamed('/video?bvid=$bvid&cid=$cid', - arguments: {'heroTag': heroTag, 'pic': videoItem.cover}); + Get.toNamed( + '/video?bvid=$bvid&cid=$cid', + arguments: { + 'heroTag': Utils.makeHeroTag(aid), + 'pic': videoItem.cover, + }, + ); } }, onLongPress: () { @@ -191,16 +188,13 @@ class HistoryItem extends StatelessWidget { double maxHeight = boxConstraints.maxHeight; return Stack( children: [ - Hero( - tag: heroTag, - child: NetworkImgLayer( - radius: 12, - src: (videoItem.cover != '' - ? videoItem.cover - : videoItem.covers.first), - width: maxWidth, - height: maxHeight, - ), + NetworkImgLayer( + radius: 12, + src: (videoItem.cover != '' + ? videoItem.cover + : videoItem.covers.first), + width: maxWidth, + height: maxHeight, ), if (!BusinessType .hiddenDurationType.hiddenDurationType diff --git a/lib/pages/later/controller.dart b/lib/pages/later/controller.dart index 159b991eb..64489a4bd 100644 --- a/lib/pages/later/controller.dart +++ b/lib/pages/later/controller.dart @@ -177,12 +177,11 @@ class LaterController extends MultiSelectController { if (item.bvid != list.first.bvid) { SmartDialog.showToast('已跳过不支持播放的视频'); } - final String heroTag = Utils.makeHeroTag(item.bvid); Get.toNamed( '/video?bvid=${item.bvid}&cid=${item.cid}', arguments: { 'videoItem': item, - 'heroTag': heroTag, + 'heroTag': Utils.makeHeroTag(item.bvid), 'sourceType': 'watchLater', 'count': list.length, 'favTitle': '稍后再看', diff --git a/lib/pages/member_coin/widgets/item.dart b/lib/pages/member_coin/widgets/item.dart index 2305e523f..c9180592c 100644 --- a/lib/pages/member_coin/widgets/item.dart +++ b/lib/pages/member_coin/widgets/item.dart @@ -18,7 +18,6 @@ class MemberCoinsItem extends StatelessWidget { @override Widget build(BuildContext context) { - String heroTag = Utils.makeHeroTag(coinItem.aid); return Card( elevation: 0, clipBehavior: Clip.hardEdge, @@ -27,8 +26,13 @@ class MemberCoinsItem extends StatelessWidget { onTap: () async { int cid = await SearchHttp.ab2c(aid: coinItem.aid, bvid: coinItem.bvid); - Get.toNamed('/video?bvid=${coinItem.bvid}&cid=$cid', - arguments: {'videoItem': coinItem, 'heroTag': heroTag}); + Get.toNamed( + '/video?bvid=${coinItem.bvid}&cid=$cid', + arguments: { + 'videoItem': coinItem, + 'heroTag': Utils.makeHeroTag(coinItem.aid) + }, + ); }, child: Column( children: [ diff --git a/lib/pages/member_search/search_dynamic.dart b/lib/pages/member_search/search_dynamic.dart index 23e749c48..191581f50 100644 --- a/lib/pages/member_search/search_dynamic.dart +++ b/lib/pages/member_search/search_dynamic.dart @@ -258,7 +258,9 @@ class SearchDynamic extends StatelessWidget { onTap: () { Get.toNamed( '/video?bvid=${IdUtils.av2bv(json['aid'])}&cid=${json['cid']}', - arguments: {'heroTag': Utils.makeHeroTag(json['aid'])}, + arguments: { + 'heroTag': Utils.makeHeroTag(json['aid']), + }, ); }, title: Text( diff --git a/lib/pages/member_seasons/widgets/item.dart b/lib/pages/member_seasons/widgets/item.dart index d814f76a4..1c146ef89 100644 --- a/lib/pages/member_seasons/widgets/item.dart +++ b/lib/pages/member_seasons/widgets/item.dart @@ -17,7 +17,6 @@ class MemberSeasonsItem extends StatelessWidget { @override Widget build(BuildContext context) { - String heroTag = Utils.makeHeroTag(seasonItem.aid); return Card( elevation: 0, clipBehavior: Clip.hardEdge, @@ -26,8 +25,13 @@ class MemberSeasonsItem extends StatelessWidget { onTap: () async { int cid = await SearchHttp.ab2c(aid: seasonItem.aid, bvid: seasonItem.bvid); - Get.toNamed('/video?bvid=${seasonItem.bvid}&cid=$cid', - arguments: {'videoItem': seasonItem, 'heroTag': heroTag}); + Get.toNamed( + '/video?bvid=${seasonItem.bvid}&cid=$cid', + arguments: { + 'videoItem': seasonItem, + 'heroTag': Utils.makeHeroTag(seasonItem.aid) + }, + ); }, child: Column( children: [ @@ -38,13 +42,10 @@ class MemberSeasonsItem extends StatelessWidget { double maxHeight = boxConstraints.maxHeight; return Stack( children: [ - Hero( - tag: heroTag, - child: NetworkImgLayer( - src: seasonItem.pic, - width: maxWidth, - height: maxHeight, - ), + NetworkImgLayer( + src: seasonItem.pic, + width: maxWidth, + height: maxHeight, ), if (seasonItem.pubdate != null) PBadge( diff --git a/lib/pages/search_panel/controller.dart b/lib/pages/search_panel/controller.dart index 3e705466b..3a29ceca5 100644 --- a/lib/pages/search_panel/controller.dart +++ b/lib/pages/search_panel/controller.dart @@ -73,7 +73,6 @@ class SearchPanelController extends CommonController { } if (matchKeys.isNotEmpty && searchType == SearchType.video || aid.toString() == keyword) { - String heroTag = Utils.makeHeroTag(bvid); int cid = await SearchHttp.ab2c(aid: aid, bvid: bvid); if (matchKeys.isNotEmpty && matchKeys.first == 'BV' && @@ -84,7 +83,10 @@ class SearchPanelController extends CommonController { aid.toString() == keyword) { Get.toNamed( '/video?bvid=$bvid&cid=$cid', - arguments: {'videoItem': resultList.first, 'heroTag': heroTag}, + arguments: { + 'videoItem': resultList.first, + 'heroTag': Utils.makeHeroTag(bvid), + }, ); } } diff --git a/lib/pages/subscription_detail/widget/sub_video_card.dart b/lib/pages/subscription_detail/widget/sub_video_card.dart index 0efff4a0b..43447c06c 100644 --- a/lib/pages/subscription_detail/widget/sub_video_card.dart +++ b/lib/pages/subscription_detail/widget/sub_video_card.dart @@ -26,7 +26,6 @@ class SubVideoCardH extends StatelessWidget { Widget build(BuildContext context) { int id = videoItem.id!; String bvid = videoItem.bvid!; - String heroTag = Utils.makeHeroTag(id); return InkWell( onTap: () async { int cid = await SearchHttp.ab2c(bvid: bvid); @@ -35,11 +34,15 @@ class SubVideoCardH extends StatelessWidget { 'cid': cid.toString(), }; - Get.toNamed('/video', parameters: parameters, arguments: { - 'videoItem': videoItem, - 'heroTag': heroTag, - 'videoType': SearchType.video, - }); + Get.toNamed( + '/video', + parameters: parameters, + arguments: { + 'videoItem': videoItem, + 'heroTag': Utils.makeHeroTag(id), + 'videoType': SearchType.video, + }, + ); }, onLongPress: () => imageSaveDialog( context: context, @@ -69,13 +72,10 @@ class SubVideoCardH extends StatelessWidget { double maxHeight = boxConstraints.maxHeight; return Stack( children: [ - Hero( - tag: heroTag, - child: NetworkImgLayer( - src: videoItem.cover, - width: maxWidth, - height: maxHeight, - ), + NetworkImgLayer( + src: videoItem.cover, + width: maxWidth, + height: maxHeight, ), PBadge( text: Utils.timeFormat(videoItem.duration!), diff --git a/lib/pages/video/detail/introduction/controller.dart b/lib/pages/video/detail/introduction/controller.dart index 601cb5002..ac7fbe46b 100644 --- a/lib/pages/video/detail/introduction/controller.dart +++ b/lib/pages/video/detail/introduction/controller.dart @@ -765,13 +765,23 @@ class VideoIntroController extends GetxController (relatedCtr.loadingState.value as Success).response[0]; try { if (videoItem.cid != null) { - Get.offNamed('/video?bvid=${videoItem.bvid}&cid=${videoItem.cid}', - arguments: {'videoItem': videoItem, 'heroTag': heroTag}); + Get.offNamed( + '/video?bvid=${videoItem.bvid}&cid=${videoItem.cid}', + arguments: { + 'videoItem': videoItem, + 'heroTag': heroTag, + }, + ); // changeSeasonOrbangu(videoItem.bvid, videoItem.cid, videoItem.aid); } else { - SearchHttp.ab2c(aid: videoItem.aid, bvid: videoItem.bvid).then((cid) => - Get.offNamed('/video?bvid=${videoItem.bvid}&cid=${videoItem.cid}', - arguments: {'videoItem': videoItem, 'heroTag': heroTag})); + SearchHttp.ab2c(aid: videoItem.aid, bvid: videoItem.bvid).then( + (cid) => Get.offNamed( + '/video?bvid=${videoItem.bvid}&cid=${videoItem.cid}', + arguments: { + 'videoItem': videoItem, + 'heroTag': heroTag, + }), + ); } } catch (err) { SmartDialog.showToast(err.toString()); diff --git a/lib/pages/video/detail/view.dart b/lib/pages/video/detail/view.dart index 4e73665e5..b904e28c7 100644 --- a/lib/pages/video/detail/view.dart +++ b/lib/pages/video/detail/view.dart @@ -1087,7 +1087,7 @@ class _VideoDetailPageState extends State Widget get plPlayer => Obx( () => videoDetailController.videoState.value is! Success - ? nil + ? const SizedBox.shrink() : !videoDetailController.autoPlay.value || plPlayerController == null || plPlayerController!.videoController == null diff --git a/lib/pages/whisper_detail/widget/chat_item.dart b/lib/pages/whisper_detail/widget/chat_item.dart index 501697451..fb218c2d3 100644 --- a/lib/pages/whisper_detail/widget/chat_item.dart +++ b/lib/pages/whisper_detail/widget/chat_item.dart @@ -164,13 +164,14 @@ class ChatItem extends StatelessWidget { SmartDialog.showLoading(); var bvid = content["bvid"]; final int cid = await SearchHttp.ab2c(bvid: bvid); - final String heroTag = Utils.makeHeroTag(bvid); SmartDialog.dismiss().then( - (e) => Get.toNamed('/video?bvid=$bvid&cid=$cid', - arguments: { - 'pic': content['thumb'], - 'heroTag': heroTag, - }), + (e) => Get.toNamed( + '/video?bvid=$bvid&cid=$cid', + arguments: { + 'pic': content['thumb'], + 'heroTag': Utils.makeHeroTag(bvid), + }, + ), ); }, child: NetworkImgLayer( @@ -211,13 +212,14 @@ class ChatItem extends StatelessWidget { SmartDialog.showLoading(); var bvid = content["bvid"]; final int cid = await SearchHttp.ab2c(bvid: bvid); - final String heroTag = Utils.makeHeroTag(bvid); - SmartDialog.dismiss().then( - (e) => Get.toNamed('/video?bvid=$bvid&cid=$cid', - arguments: { - 'pic': content['thumb'], - 'heroTag': heroTag, - }), + SmartDialog.dismiss().then( + (_) => Get.toNamed( + '/video?bvid=$bvid&cid=$cid', + arguments: { + 'pic': content['thumb'], + 'heroTag': Utils.makeHeroTag(bvid), + }, + ), ); } catch (err) { SmartDialog.dismiss(); @@ -297,13 +299,12 @@ class ChatItem extends StatelessWidget { try { SmartDialog.showLoading(); final int cid = await SearchHttp.ab2c(bvid: bvid); - final String heroTag = Utils.makeHeroTag(bvid); SmartDialog.dismiss().then( (e) => Get.toNamed( '/video?bvid=$bvid&cid=$cid', arguments: { 'pic': i['cover_url'], - 'heroTag': heroTag, + 'heroTag': Utils.makeHeroTag(bvid), }), ); } catch (err) { diff --git a/lib/utils/app_scheme.dart b/lib/utils/app_scheme.dart index 420ff0256..ccb05fa46 100644 --- a/lib/utils/app_scheme.dart +++ b/lib/utils/app_scheme.dart @@ -239,12 +239,11 @@ class PiliScheme { SmartDialog.showLoading(msg: '获取中...'); final int cid = await SearchHttp.ab2c(bvid: bvidVal, aid: aidVal); SmartDialog.dismiss(); - final String heroTag = Utils.makeHeroTag(aid); Utils.toDupNamed( '/video?bvid=$bvid&cid=$cid', arguments: { 'pic': null, - 'heroTag': heroTag, + 'heroTag': Utils.makeHeroTag(aid), }, ); } catch (e) { diff --git a/lib/utils/url_utils.dart b/lib/utils/url_utils.dart index e7ca41892..9e3f115b9 100644 --- a/lib/utils/url_utils.dart +++ b/lib/utils/url_utils.dart @@ -43,12 +43,11 @@ class UrlUtils { if (matchRes.containsKey('BV')) { final String bv = matchRes['BV']; final int cid = await SearchHttp.ab2c(bvid: bv); - final String heroTag = Utils.makeHeroTag(bv); await Get.toNamed( '/video?bvid=$bv&cid=$cid', arguments: { 'pic': '', - 'heroTag': heroTag, + 'heroTag': Utils.makeHeroTag(bv), }, preventDuplicates: false, ); diff --git a/lib/utils/utils.dart b/lib/utils/utils.dart index a43929c18..76a134f80 100644 --- a/lib/utils/utils.dart +++ b/lib/utils/utils.dart @@ -416,12 +416,11 @@ class Utils { dynamic bvid = episode?.bvid; dynamic cid = episode?.cid; dynamic pic = episode?.cover; - dynamic heroTag = Utils.makeHeroTag(cid); Utils.toDupNamed( '/video?bvid=$bvid&cid=$cid&seasonId=${result['data'].seasonId}&epId=${episode?.epId}&type=${result['data'].type}', arguments: { 'pic': pic, - 'heroTag': heroTag, + 'heroTag': Utils.makeHeroTag(cid), 'videoType': SearchType.media_bangumi, 'bangumiItem': result['data'], },