reduce rebuild

Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-03-17 14:38:10 +08:00
parent 8a8aa6c1e0
commit d6579b29ae
23 changed files with 254 additions and 214 deletions

View File

@@ -4,6 +4,7 @@ import 'package:PiliPlus/common/constants.dart';
import 'package:PiliPlus/common/widgets/flutter/pop_scope.dart';
import 'package:PiliPlus/common/widgets/flutter/tabs.dart';
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
import 'package:PiliPlus/common/widgets/route_aware_mixin.dart';
import 'package:PiliPlus/models/common/nav_bar_config.dart';
import 'package:PiliPlus/pages/home/view.dart';
import 'package:PiliPlus/pages/main/controller.dart';
@@ -13,7 +14,6 @@ import 'package:PiliPlus/utils/app_scheme.dart';
import 'package:PiliPlus/utils/extension/context_ext.dart';
import 'package:PiliPlus/utils/extension/size_ext.dart';
import 'package:PiliPlus/utils/extension/theme_ext.dart';
import 'package:PiliPlus/utils/page_utils.dart';
import 'package:PiliPlus/utils/platform_utils.dart';
import 'package:PiliPlus/utils/storage.dart';
import 'package:PiliPlus/utils/storage_key.dart';
@@ -32,11 +32,19 @@ class MainApp extends StatefulWidget {
}
class _MainAppState extends PopScopeState<MainApp>
with RouteAware, WidgetsBindingObserver, WindowListener, TrayListener {
with
RouteAware,
RouteAwareMixin,
WidgetsBindingObserver,
WindowListener,
TrayListener {
final _mainController = Get.put(MainController());
late final _setting = GStorage.setting;
late EdgeInsets _padding;
@override
bool get initCanPop => false;
@override
void initState() {
super.initState();
@@ -65,10 +73,6 @@ class _MainAppState extends PopScopeState<MainApp>
if (PlatformUtils.isDesktop) {
windowManager.setBrightness(brightness);
}
PageUtils.routeObserver.subscribe(
this,
ModalRoute.of(context) as PageRoute,
);
if (!_mainController.useSideBar) {
_mainController.useBottomNav = MediaQuery.sizeOf(context).isPortrait;
}
@@ -106,7 +110,6 @@ class _MainAppState extends PopScopeState<MainApp>
trayManager.removeListener(this);
windowManager.removeListener(this);
}
PageUtils.routeObserver.unsubscribe(this);
WidgetsBinding.instance.removeObserver(this);
PiliScheme.listener?.cancel();
GStorage.close();