setTheme method
Implementation
void setTheme(
{required Brightness brightness,
required Color color,
required String font}) async {
// set brightness
var sameBrightness = brightness ==
(System.theme.brightness == 'dark'
? Brightness.dark
: Brightness.light);
// set color
var sameColor = toStr(color) == toStr(System.theme.colorScheme);
// get text theme
var textTheme = _getTextTheme(font);
if (textTheme == null) font = System.theme.font ?? FmlEngine.defaultFont;
// set font
var sameFont = toStr(font) == System.theme.font;
// set the theme
if (!sameBrightness || !sameColor || !sameFont) {
// set the theme
_themeData = ThemeData(
useMaterial3: true,
brightness: brightness,
colorSchemeSeed: color,
fontFamily: font,
textTheme: textTheme);
// set system theme bindables
_setSystemBindables(brightness: brightness, color: color, font: font);
// notify
notifyListeners();
}
}