From 3d5ebe7e99a1340e14618ca934d5600ee591a3b8 Mon Sep 17 00:00:00 2001 From: guozhigq Date: Sat, 10 Feb 2024 19:57:10 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20=E8=A7=86=E9=A2=91=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E9=A1=B5=E8=AF=84=E8=AE=BA=E9=87=8D=E5=A4=8D=E8=AF=B7=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/pages/video/detail/reply/controller.dart | 3 +++ lib/pages/video/detail/reply/view.dart | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/pages/video/detail/reply/controller.dart b/lib/pages/video/detail/reply/controller.dart index 5781cbba..bfcd0e80 100644 --- a/lib/pages/video/detail/reply/controller.dart +++ b/lib/pages/video/detail/reply/controller.dart @@ -53,6 +53,9 @@ class VideoReplyController extends GetxController { } Future queryReplyList({type = 'init'}) async { + if (isLoadingMore) { + return; + } isLoadingMore = true; if (type == 'init') { currentPage = 0; diff --git a/lib/pages/video/detail/reply/view.dart b/lib/pages/video/detail/reply/view.dart index b2c67b1e..9b7546af 100644 --- a/lib/pages/video/detail/reply/view.dart +++ b/lib/pages/video/detail/reply/view.dart @@ -75,7 +75,8 @@ class _VideoReplyPanelState extends State () { if (scrollController.position.pixels >= scrollController.position.maxScrollExtent - 300) { - EasyThrottle.throttle('replylist', const Duration(seconds: 2), () { + EasyThrottle.throttle('replylist', const Duration(milliseconds: 200), + () { _videoReplyController.onLoad(); }); } From b264427be603759271d954535cfb12bfbd05eb16 Mon Sep 17 00:00:00 2001 From: guozhigq Date: Sun, 11 Feb 2024 23:07:44 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=E5=88=87=E6=8D=A2=E5=90=88=E9=9B=86?= =?UTF-8?q?=E8=AF=84=E8=AE=BA=E4=B8=8D=E5=88=B7=E6=96=B0=20issues=20#326?= =?UTF-8?q?=20#525?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/pages/video/detail/controller.dart | 6 ++++-- lib/pages/video/detail/introduction/controller.dart | 1 + lib/pages/video/detail/reply/controller.dart | 1 + lib/pages/video/detail/reply/view.dart | 11 +++++++---- lib/pages/video/detail/view.dart | 7 +++++-- 5 files changed, 18 insertions(+), 8 deletions(-) diff --git a/lib/pages/video/detail/controller.dart b/lib/pages/video/detail/controller.dart index f36eb589..0162654f 100644 --- a/lib/pages/video/detail/controller.dart +++ b/lib/pages/video/detail/controller.dart @@ -19,6 +19,7 @@ import 'package:pilipala/utils/utils.dart'; import 'package:pilipala/utils/video_utils.dart'; import 'package:screen_brightness/screen_brightness.dart'; +import '../../../utils/id_utils.dart'; import 'widgets/header_control.dart'; class VideoDetailController extends GetxController @@ -61,7 +62,7 @@ class VideoDetailController extends GetxController Box localCache = GStrorage.localCache; Box setting = GStrorage.setting; - int oid = 0; + RxInt oid = 0.obs; // 评论id 请求楼中楼评论使用 int fRpid = 0; @@ -135,13 +136,14 @@ class VideoDetailController extends GetxController defaultValue: VideoDecodeFormats.values.last.code); cacheAudioQa = setting.get(SettingBoxKey.defaultAudioQa, defaultValue: AudioQuality.hiRes.code); + oid.value = IdUtils.bv2av(Get.parameters['bvid']!); } showReplyReplyPanel() { PersistentBottomSheetController? ctr = scaffoldKey.currentState?.showBottomSheet((BuildContext context) { return VideoReplyReplyPanel( - oid: oid, + oid: oid.value, rpid: fRpid, closePanel: () => { fRpid = 0, diff --git a/lib/pages/video/detail/introduction/controller.dart b/lib/pages/video/detail/introduction/controller.dart index d1298fcc..fc92fb56 100644 --- a/lib/pages/video/detail/introduction/controller.dart +++ b/lib/pages/video/detail/introduction/controller.dart @@ -476,6 +476,7 @@ class VideoIntroController extends GetxController { final VideoDetailController videoDetailCtr = Get.find(tag: heroTag); videoDetailCtr.bvid = bvid; + videoDetailCtr.oid.value = aid; videoDetailCtr.cid.value = cid; videoDetailCtr.danmakuCid.value = cid; videoDetailCtr.queryVideoUrl(); diff --git a/lib/pages/video/detail/reply/controller.dart b/lib/pages/video/detail/reply/controller.dart index bfcd0e80..e564ef02 100644 --- a/lib/pages/video/detail/reply/controller.dart +++ b/lib/pages/video/detail/reply/controller.dart @@ -59,6 +59,7 @@ class VideoReplyController extends GetxController { isLoadingMore = true; if (type == 'init') { currentPage = 0; + noMore.value = ''; } if (noMore.value == '没有更多了') { return; diff --git a/lib/pages/video/detail/reply/view.dart b/lib/pages/video/detail/reply/view.dart index 9b7546af..8489cbb1 100644 --- a/lib/pages/video/detail/reply/view.dart +++ b/lib/pages/video/detail/reply/view.dart @@ -16,11 +16,13 @@ import 'widgets/reply_item.dart'; class VideoReplyPanel extends StatefulWidget { final String? bvid; + final int? oid; final int rpid; final String? replyLevel; const VideoReplyPanel({ this.bvid, + this.oid, this.rpid = 0, this.replyLevel, super.key, @@ -48,16 +50,17 @@ class _VideoReplyPanelState extends State @override void initState() { super.initState(); - int oid = widget.bvid != null ? IdUtils.bv2av(widget.bvid!) : 0; + // int oid = widget.bvid != null ? IdUtils.bv2av(widget.bvid!) : 0; heroTag = Get.arguments['heroTag']; replyLevel = widget.replyLevel ?? '1'; if (replyLevel == '2') { _videoReplyController = Get.put( - VideoReplyController(oid, widget.rpid.toString(), replyLevel), + VideoReplyController(widget.oid, widget.rpid.toString(), replyLevel), tag: widget.rpid.toString()); } else { - _videoReplyController = - Get.put(VideoReplyController(oid, '', replyLevel), tag: heroTag); + _videoReplyController = Get.put( + VideoReplyController(widget.oid, '', replyLevel), + tag: heroTag); } fabAnimationCtr = AnimationController( diff --git a/lib/pages/video/detail/view.dart b/lib/pages/video/detail/view.dart index 3644fa41..14311cc9 100644 --- a/lib/pages/video/detail/view.dart +++ b/lib/pages/video/detail/view.dart @@ -570,8 +570,11 @@ class _VideoDetailPageState extends State ); }, ), - VideoReplyPanel( - bvid: videoDetailController.bvid, + Obx( + () => VideoReplyPanel( + bvid: videoDetailController.bvid, + oid: videoDetailController.oid.value, + ), ) ], ),