Skip to content

Commit 14a9c23

Browse files
authored
Separate theme logic (#117818)
Separate theme logic
1 parent fa49db3 commit 14a9c23

File tree

1 file changed

+7
-3
lines changed
  • packages/flutter/lib/src/material

1 file changed

+7
-3
lines changed

packages/flutter/lib/src/material/app.dart

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -910,15 +910,14 @@ class _MaterialAppState extends State<MaterialApp> {
910910
);
911911
}
912912

913-
Widget _materialBuilder(BuildContext context, Widget? child) {
913+
ThemeData _themeBuilder(BuildContext context) {
914+
ThemeData? theme;
914915
// Resolve which theme to use based on brightness and high contrast.
915916
final ThemeMode mode = widget.themeMode ?? ThemeMode.system;
916917
final Brightness platformBrightness = MediaQuery.platformBrightnessOf(context);
917918
final bool useDarkTheme = mode == ThemeMode.dark
918919
|| (mode == ThemeMode.system && platformBrightness == ui.Brightness.dark);
919920
final bool highContrast = MediaQuery.highContrastOf(context);
920-
ThemeData? theme;
921-
922921
if (useDarkTheme && highContrast && widget.highContrastDarkTheme != null) {
923922
theme = widget.highContrastDarkTheme;
924923
} else if (useDarkTheme && widget.darkTheme != null) {
@@ -927,6 +926,11 @@ class _MaterialAppState extends State<MaterialApp> {
927926
theme = widget.highContrastTheme;
928927
}
929928
theme ??= widget.theme ?? ThemeData.light();
929+
return theme;
930+
}
931+
932+
Widget _materialBuilder(BuildContext context, Widget? child) {
933+
final ThemeData theme = _themeBuilder(context);
930934
final Color effectiveSelectionColor = theme.textSelectionTheme.selectionColor ?? theme.colorScheme.primary.withOpacity(0.40);
931935
final Color effectiveCursorColor = theme.textSelectionTheme.cursorColor ?? theme.colorScheme.primary;
932936

0 commit comments

Comments
 (0)