diff --git a/lib/main.dart b/lib/main.dart index 633e41c4..bd38bb87 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 0b9f1ace..d8013b75 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 73823270..95a1ff13 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 4e3d6c96..e1794d97 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 975e0857..a1d6e8d9 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, ), ); }