diff --git a/lib/pages/mine/controller.dart b/lib/pages/mine/controller.dart index 9a561eb08..03ea079f5 100644 --- a/lib/pages/mine/controller.dart +++ b/lib/pages/mine/controller.dart @@ -136,7 +136,6 @@ class MineController extends CommonDataController bool customHandleResponse(bool isRefresh, Success response) { favFolderCount = response.response.count; loadingState.value = response; - scrollController.jumpToTop(); return true; } @@ -286,12 +285,16 @@ class MineController extends CommonDataController } @override - Future onRefresh() { + Future onRefresh({bool isManual = true}) { if (!accountService.isLogin.value) { return Future.syncValue(null); } queryUserInfo(); - return super.onRefresh(); + return super.onRefresh().whenComplete(() { + if (isManual) { + scrollController.jumpToTop(); + } + }); } @override diff --git a/lib/pages/mine/view.dart b/lib/pages/mine/view.dart index 14b9351e9..c07f8ae72 100644 --- a/lib/pages/mine/view.dart +++ b/lib/pages/mine/view.dart @@ -430,6 +430,11 @@ class _MediaPageState extends CommonPageState ); } + void _autoRefresh() => Future.delayed( + const Duration(milliseconds: 150), + () => controller.onRefresh(isManual: false), + ); + Widget _buildFav(ThemeData theme, Color secondary) { return Column( children: [ @@ -438,12 +443,7 @@ class _MediaPageState extends CommonPageState color: theme.dividerColor.withValues(alpha: 0.1), ), ListTile( - onTap: () => Get.toNamed('/fav')?.whenComplete( - () => Future.delayed( - const Duration(milliseconds: 150), - controller.onRefresh, - ), - ), + onTap: () => Get.toNamed('/fav')?.whenComplete(_autoRefresh), dense: true, title: Padding( padding: const EdgeInsets.only(left: 10), @@ -522,12 +522,8 @@ class _MediaPageState extends CommonPageState ), ), ), - onPressed: () => Get.toNamed('/fav')?.whenComplete( - () => Future.delayed( - const Duration(milliseconds: 150), - controller.onRefresh, - ), - ), + onPressed: () => + Get.toNamed('/fav')?.whenComplete(_autoRefresh), icon: Icon( Icons.arrow_forward_ios, size: 18, @@ -540,10 +536,7 @@ class _MediaPageState extends CommonPageState return FavFolderItem( heroTag: Utils.generateRandomString(8), item: response.list[index], - onPop: () => Future.delayed( - const Duration(milliseconds: 150), - controller.onRefresh, - ), + onPop: _autoRefresh, ); } }, diff --git a/lib/pages/video/view.dart b/lib/pages/video/view.dart index baa756734..c3b8dd517 100644 --- a/lib/pages/video/view.dart +++ b/lib/pages/video/view.dart @@ -446,21 +446,18 @@ class _VideoDetailPageVState extends State } } - () async { - if (videoDetailController.autoPlay) { - await videoDetailController.playerInit( - autoplay: videoDetailController.playerStatus?.isPlaying ?? false, - ); - } else if (videoDetailController.plPlayerController.preInitPlayer && - !videoDetailController.isQuerying && - videoDetailController.videoState.value is! Error) { - await videoDetailController.playerInit(); - } - if (!mounted || !isShowing) return; - plPlayerController - ?..addStatusLister(playerListener) - ..addPositionListener(positionListener); - }(); + plPlayerController + ?..addStatusLister(playerListener) + ..addPositionListener(positionListener); + if (videoDetailController.autoPlay) { + videoDetailController.playerInit( + autoplay: videoDetailController.playerStatus?.isPlaying ?? false, + ); + } else if (videoDetailController.plPlayerController.preInitPlayer && + !videoDetailController.isQuerying && + videoDetailController.videoState.value is! Error) { + videoDetailController.playerInit(); + } super.didPopNext(); }