getThemeData method

ThemeData getThemeData({
  1. required BuildContext context,
  2. Brightness? brightness,
  3. bool needTextTheme = true,
  4. bool needColorScheme = true,
})

Returns a ThemeData instance based on the current brightness and configuration.

Implementation

ThemeData getThemeData({
  required BuildContext context,
  Brightness? brightness,
  bool needTextTheme = true,
  bool needColorScheme = true,
}) {
  Brightness? br = brightness ?? _brightness;
  if (br == null) {
    try {
      br = Theme.of(context).brightness;
    } catch (e) {
      br = Brightness.light;
    }
  }

  TencentCloudChatThemeColors colorTheme = (br == Brightness.light ? _themeModel.lightTheme : _themeModel.darkTheme);

  return ThemeData(
    useMaterial3: true,
    textTheme: needTextTheme
        ? TextTheme(
            bodyLarge:
                TextStyle(color: colorTheme.primaryTextColor, fontSize: _themeModel.textStyle.standardLargeText),
            bodyMedium: TextStyle(color: colorTheme.primaryTextColor, fontSize: _themeModel.textStyle.standardText),
            bodySmall:
                TextStyle(color: colorTheme.primaryTextColor, fontSize: _themeModel.textStyle.standardSmallText),
          )
        : null,
    colorScheme: needColorScheme ? colorTheme.toColorScheme(br) : null,
  );
}