diff --git a/lib/pages/dynamics/controller.dart b/lib/pages/dynamics/controller.dart index 5b1fbf24..73948e8d 100644 --- a/lib/pages/dynamics/controller.dart +++ b/lib/pages/dynamics/controller.dart @@ -70,33 +70,44 @@ class DynamicsController extends GetxController initialValue.value = value; } + toDupNamed( + String page, { + dynamic arguments, + Map? parameters, + }) { + Get.toNamed( + page, + arguments: arguments, + parameters: parameters, + preventDuplicates: false, + ); + } + pushDetail(item, floor, {action = 'all'}) async { feedBack(); /// 点击评论action 直接查看评论 if (action == 'comment') { - Get.toNamed('/dynamicDetail', + toDupNamed('/dynamicDetail', arguments: {'item': item, 'floor': floor, 'action': action}); return false; } switch (item!.type) { /// 转发的动态 case 'DYNAMIC_TYPE_FORWARD': - Get.toNamed('/dynamicDetail', - arguments: {'item': item, 'floor': floor}); + toDupNamed('/dynamicDetail', arguments: {'item': item, 'floor': floor}); break; /// 图文动态查看 case 'DYNAMIC_TYPE_DRAW': - Get.toNamed('/dynamicDetail', - arguments: {'item': item, 'floor': floor}); + toDupNamed('/dynamicDetail', arguments: {'item': item, 'floor': floor}); break; case 'DYNAMIC_TYPE_AV': String bvid = item.modules.moduleDynamic.major.archive.bvid; String cover = item.modules.moduleDynamic.major.archive.cover; try { int cid = await SearchHttp.ab2c(bvid: bvid); - Get.toNamed('/video?bvid=$bvid&cid=$cid', + toDupNamed('/video?bvid=$bvid&cid=$cid', arguments: {'pic': cover, 'heroTag': bvid}); } catch (err) { SmartDialog.showToast(err.toString()); @@ -114,14 +125,14 @@ class DynamicsController extends GetxController if (url.contains('read')) { number = 'cv$number'; } - Get.toNamed('/htmlRender', parameters: { + toDupNamed('/htmlRender', parameters: { 'url': url.startsWith('//') ? url.split('//').last : url, 'title': title, 'id': number, 'dynamicType': url.split('//').last.split('/')[1] }); } else { - Get.toNamed( + toDupNamed( '/webviewnew', parameters: { 'url': 'https:$url', @@ -140,8 +151,7 @@ class DynamicsController extends GetxController /// 纯文字动态查看 case 'DYNAMIC_TYPE_WORD': print('纯文本'); - Get.toNamed('/dynamicDetail', - arguments: {'item': item, 'floor': floor}); + toDupNamed('/dynamicDetail', arguments: {'item': item, 'floor': floor}); break; case 'DYNAMIC_TYPE_LIVE_RCMD': DynamicLiveModel liveRcmd = item.modules.moduleDynamic.major.liveRcmd; @@ -155,7 +165,7 @@ class DynamicsController extends GetxController 'roomid': liveRcmd.roomId, 'watched_show': liveRcmd.watchedShow, }); - Get.toNamed('/liveRoom?roomid=${liveItem.roomId}', arguments: { + toDupNamed('/liveRoom?roomid=${liveItem.roomId}', arguments: { 'liveItem': liveItem, 'heroTag': liveItem.roomId.toString() }); @@ -169,7 +179,7 @@ class DynamicsController extends GetxController String bvid = IdUtils.av2bv(aid); String cover = ugcSeason.cover!; int cid = await SearchHttp.ab2c(bvid: bvid); - Get.toNamed('/video?bvid=$bvid&cid=$cid', + toDupNamed('/video?bvid=$bvid&cid=$cid', arguments: {'pic': cover, 'heroTag': bvid}); break; @@ -198,7 +208,7 @@ class DynamicsController extends GetxController int cid = episode.cid!; String pic = episode.cover!; String heroTag = Utils.makeHeroTag(cid); - Get.toNamed( + toDupNamed( '/video?bvid=$bvid&cid=$cid&seasonId=${res['data'].seasonId}&epid=$epId', arguments: { 'pic': pic,