diff --git a/lib/main.dart b/lib/main.dart index 633e41c46..bd38bb875 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -67,7 +67,7 @@ class MyApp extends StatelessWidget { ), navigatorObservers: [ VideoDetailPage.routeObserver, - SearchPage.routeObserver + SearchPage.routeObserver, ], ); }), diff --git a/lib/models/user/fav_detail.dart b/lib/models/user/fav_detail.dart index 0b9f1ace3..d8013b75d 100644 --- a/lib/models/user/fav_detail.dart +++ b/lib/models/user/fav_detail.dart @@ -17,7 +17,7 @@ class FavDetailData { ? json['medias'] .map((e) => FavDetailItemData.fromJson(e)) .toList() - : [FavDetailItemData()]; + : []; hasMore = json['has_more']; } } diff --git a/lib/pages/main/view.dart b/lib/pages/main/view.dart index 738232703..95a1ff137 100644 --- a/lib/pages/main/view.dart +++ b/lib/pages/main/view.dart @@ -3,6 +3,7 @@ import 'package:get/get.dart'; import 'package:hive/hive.dart'; import 'package:pilipala/pages/dynamics/index.dart'; import 'package:pilipala/pages/home/index.dart'; +import 'package:pilipala/pages/media/index.dart'; import 'package:pilipala/utils/feed_back.dart'; import 'package:pilipala/utils/storage.dart'; import './controller.dart'; @@ -18,6 +19,7 @@ class _MainAppState extends State with SingleTickerProviderStateMixin { final MainController _mainController = Get.put(MainController()); final HomeController _homeController = Get.put(HomeController()); final DynamicsController _dynamicController = Get.put(DynamicsController()); + final MediaController _mediaController = Get.put(MediaController()); PageController? _pageController; @@ -87,6 +89,10 @@ class _MainAppState extends State with SingleTickerProviderStateMixin { } else { _dynamicController.flag = false; } + + if (currentPage is MediaPage) { + _mediaController.queryFavFolder(); + } } @override diff --git a/lib/pages/media/view.dart b/lib/pages/media/view.dart index 4e3d6c968..e1794d97a 100644 --- a/lib/pages/media/view.dart +++ b/lib/pages/media/view.dart @@ -5,11 +5,21 @@ import 'package:pilipala/models/user/fav_folder.dart'; import 'package:pilipala/pages/media/index.dart'; import 'package:pilipala/utils/utils.dart'; -class MediaPage extends StatelessWidget { +class MediaPage extends StatefulWidget { const MediaPage({super.key}); + @override + State createState() => _MediaPageState(); +} + +class _MediaPageState extends State + with AutomaticKeepAliveClientMixin { + @override + bool get wantKeepAlive => true; + @override Widget build(BuildContext context) { + super.build(context); final MediaController mediaController = Get.put(MediaController()); Color primary = Theme.of(context).colorScheme.primary; return Scaffold( diff --git a/lib/pages/member/dynamic/view.dart b/lib/pages/member/dynamic/view.dart index 975e08571..a1d6e8d9d 100644 --- a/lib/pages/member/dynamic/view.dart +++ b/lib/pages/member/dynamic/view.dart @@ -24,15 +24,14 @@ class _MemberDynamicPanelState extends State @override Widget build(BuildContext context) { - return Expanded( - child: LoadingMoreList( - ListConfig( - sourceList: source, - itemBuilder: (BuildContext c, DynamicItemModel item, int index) { - return DynamicPanel(item: item); - }, - indicatorBuilder: _buildIndicator, - ), + super.build(context); + return LoadingMoreList( + ListConfig( + sourceList: source, + itemBuilder: (BuildContext c, DynamicItemModel item, int index) { + return DynamicPanel(item: item); + }, + indicatorBuilder: _buildIndicator, ), ); }