Skip to content

Commit

Permalink
fix bad calling rebuild during build
Browse files Browse the repository at this point in the history
  • Loading branch information
ErBWs committed Jan 14, 2025
1 parent 29fa181 commit 4728058
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 20 deletions.
19 changes: 10 additions & 9 deletions lib/app_widget.dart
Original file line number Diff line number Diff line change
Expand Up @@ -148,18 +148,16 @@ class _AppWidgetState extends State<AppWidget>
}
bool oledEnhance =
setting.get(SettingBoxKey.oledEnhance, defaultValue: false);
themeProvider.setDynamic(
setting.get(SettingBoxKey.useDynamicColor, defaultValue: false));
final defaultThemeMode =
setting.get(SettingBoxKey.themeMode, defaultValue: 'system');
if (defaultThemeMode == 'dark') {
themeProvider.setThemeMode(ThemeMode.dark);
themeProvider.setThemeMode(ThemeMode.dark, notify: false);
}
if (defaultThemeMode == 'light') {
themeProvider.setThemeMode(ThemeMode.light);
themeProvider.setThemeMode(ThemeMode.light, notify: false);
}
if (defaultThemeMode == 'system') {
themeProvider.setThemeMode(ThemeMode.system);
themeProvider.setThemeMode(ThemeMode.system, notify: false);
}
var defaultDarkTheme = ThemeData(
useMaterial3: true,
Expand All @@ -173,15 +171,18 @@ class _AppWidgetState extends State<AppWidget>
colorSchemeSeed: color,
),
oledEnhance ? oledDarkTheme : defaultDarkTheme,
notify: false,
);
var app = DynamicColorBuilder(
builder: (theme, darkTheme) {
if (themeProvider.useDynamicColor) {
themeProvider.setTheme(
ThemeData(colorScheme: theme),
oledEnhance
? Utils.oledDarkTheme(ThemeData(colorScheme: darkTheme))
: ThemeData(colorScheme: darkTheme));
ThemeData(colorScheme: theme),
oledEnhance
? Utils.oledDarkTheme(ThemeData(colorScheme: darkTheme))
: ThemeData(colorScheme: darkTheme),
notify: false,
);
}
return MaterialApp.router(
title: "Kazumi",
Expand Down
12 changes: 6 additions & 6 deletions lib/modules/theme/theme_provider.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,19 @@ class ThemeProvider extends ChangeNotifier {
late ThemeData light;
late ThemeData dark;

void setTheme(ThemeData light, ThemeData dark) {
void setTheme(ThemeData light, ThemeData dark, {bool notify = true}) {
this.light = light;
this.dark = dark;
notifyListeners();
if (notify) notifyListeners();
}

void setThemeMode(ThemeMode mode) {
void setThemeMode(ThemeMode mode, {bool notify = true}) {
themeMode = mode;
notifyListeners();
if (notify) notifyListeners();
}

void setDynamic(bool useDynamicColor) {
void setDynamic(bool useDynamicColor, {bool notify = true}) {
this.useDynamicColor = useDynamicColor;
notifyListeners();
if (notify) notifyListeners();
}
}
14 changes: 9 additions & 5 deletions lib/pages/init_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ import 'package:kazumi/plugins/plugins_controller.dart';
import 'package:flutter_modular/flutter_modular.dart';
import 'package:kazumi/pages/collect/collect_controller.dart';
import 'package:logger/logger.dart';
// import 'package:fvp/mdk.dart' as mdk;
import 'package:flutter/services.dart' show rootBundle;
import 'package:kazumi/utils/logger.dart';
// import 'package:path_provider/path_provider.dart';
import 'package:provider/provider.dart';
import 'package:kazumi/modules/theme/theme_provider.dart';

class InitPage extends StatefulWidget {
const InitPage({super.key});
Expand All @@ -25,6 +25,7 @@ class _InitPageState extends State<InitPage> {
final PluginsController pluginsController = Modular.get<PluginsController>();
final CollectController collectController = Modular.get<CollectController>();
Box setting = GStorage.setting;
late final ThemeProvider themeProvider;

// Future<File> _getLogFile() async {
// final directory = await getApplicationDocumentsDirectory();
Expand All @@ -42,6 +43,9 @@ class _InitPageState extends State<InitPage> {
_webDavInit();
_update();
_migrateStorage();
WidgetsBinding.instance.addPostFrameCallback((_) {
themeProvider = Provider.of<ThemeProvider>(context, listen: false);
});
super.initState();
}

Expand Down Expand Up @@ -125,6 +129,8 @@ class _InitPageState extends State<InitPage> {
},
);
} else {
themeProvider.setDynamic(
setting.get(SettingBoxKey.useDynamicColor, defaultValue: false));
Modular.to.navigate('/tab/popular/');
}
}
Expand Down Expand Up @@ -173,8 +179,6 @@ class LoadingWidget extends StatelessWidget {

@override
Widget build(BuildContext context) {
return Scaffold(
body: Container()
);
return Scaffold(body: Container());
}
}

0 comments on commit 4728058

Please sign in to comment.