diff --git a/lib/common/widgets/video_card_v.dart b/lib/common/widgets/video_card_v.dart index 4f5f8673f..178bde3bf 100644 --- a/lib/common/widgets/video_card_v.dart +++ b/lib/common/widgets/video_card_v.dart @@ -32,7 +32,7 @@ class VideoCardV extends StatelessWidget { } void onPushDetail(heroTag) async { - String goto = videoItem.goto!; + String? goto = videoItem.goto; switch (goto) { case 'bangumi': PageUtils.viewBangumi(epId: videoItem.param!); diff --git a/lib/common/widgets/video_card_v_member_home.dart b/lib/common/widgets/video_card_v_member_home.dart index a4f8a0852..1e5e1d569 100644 --- a/lib/common/widgets/video_card_v_member_home.dart +++ b/lib/common/widgets/video_card_v_member_home.dart @@ -20,7 +20,7 @@ class VideoCardVMemberHome extends StatelessWidget { }); void onPushDetail(heroTag) async { - String goto = videoItem.goto ?? ''; + String? goto = videoItem.goto; switch (goto) { case 'bangumi': PageUtils.viewBangumi(epId: videoItem.param); diff --git a/lib/models/member/coin.dart b/lib/models/member/coin.dart index b0f6a46a7..4b5d9f53d 100644 --- a/lib/models/member/coin.dart +++ b/lib/models/member/coin.dart @@ -4,6 +4,7 @@ class MemberCoinsDataModel extends HotVideoItemModel { String? subtitle; int? coins; int? time; + String? resourceType; // int? get view => stat.view; // int? get danmaku => stat.danmu; @@ -12,6 +13,8 @@ class MemberCoinsDataModel extends HotVideoItemModel { coins = json['coins']; subtitle = json['subtitle']; time = json['time']; + resourceType = json['resource_type']; + redirectUrl = json['redirect_url']; // view = json['stat']['view']; // danmaku = json['stat']['danmaku']; } diff --git a/lib/pages/live/view.dart b/lib/pages/live/view.dart index fc215c99c..ba33d54d1 100644 --- a/lib/pages/live/view.dart +++ b/lib/pages/live/view.dart @@ -291,10 +291,11 @@ class _LivePageState extends CommonPageState return switch (loadingState) { Success() || Loading() => SliverPadding( padding: EdgeInsets.only( - top: StyleString.cardSpace, - left: StyleString.cardSpace, - right: StyleString.cardSpace, - bottom: MediaQuery.paddingOf(context).bottom + 80), + top: StyleString.safeSpace, + left: StyleString.safeSpace, + right: StyleString.safeSpace, + bottom: MediaQuery.paddingOf(context).bottom + 80, + ), sliver: SliverGrid( gridDelegate: SliverGridDelegateWithExtentAndRatio( mainAxisSpacing: StyleString.cardSpace, diff --git a/lib/pages/member_coin/widgets/item.dart b/lib/pages/member_coin/widgets/item.dart index 512a34915..6aa76f6d9 100644 --- a/lib/pages/member_coin/widgets/item.dart +++ b/lib/pages/member_coin/widgets/item.dart @@ -1,5 +1,6 @@ import 'package:PiliPlus/common/widgets/image_save.dart'; import 'package:PiliPlus/common/widgets/stat/stat.dart'; +import 'package:PiliPlus/utils/app_scheme.dart'; import 'package:PiliPlus/utils/page_utils.dart'; import 'package:flutter/material.dart'; import 'package:PiliPlus/common/constants.dart'; @@ -24,6 +25,14 @@ class MemberCoinsItem extends StatelessWidget { margin: EdgeInsets.zero, child: InkWell( onTap: () async { + if (coinItem.resourceType != 'ugc') { + if (coinItem.redirectUrl?.isNotEmpty == true) { + if (await PiliScheme.routePushFromUrl(coinItem.redirectUrl!, + selfHandle: true)) { + return; + } + } + } int cid = await SearchHttp.ab2c(aid: coinItem.aid, bvid: coinItem.bvid); PageUtils.toVideoPage( diff --git a/lib/pages/rcmd/view.dart b/lib/pages/rcmd/view.dart index f3aaaa7d2..ea9e6f287 100644 --- a/lib/pages/rcmd/view.dart +++ b/lib/pages/rcmd/view.dart @@ -31,11 +31,8 @@ class _RcmdPageState extends CommonPageState super.build(context); return Container( clipBehavior: Clip.hardEdge, - margin: const EdgeInsets.only( - left: StyleString.safeSpace, right: StyleString.safeSpace), - decoration: BoxDecoration( - borderRadius: StyleString.mdRadius, - ), + margin: const EdgeInsets.symmetric(horizontal: StyleString.safeSpace), + decoration: const BoxDecoration(borderRadius: StyleString.mdRadius), child: refreshIndicator( onRefresh: () async { await controller.onRefresh();