getThemeByBrightness static method

ThemeData getThemeByBrightness(
  1. Brightness brightness
)

Implementation

static ThemeData getThemeByBrightness(Brightness brightness) {
  var colorSchemeSeed = brightness == Brightness.dark
      ? PlexApp.app.themeFromColor
      : PlexApp.app.themeFromImage == null
          ? PlexApp.app.themeFromColor
          : null;
  var colorScheme = brightness == Brightness.dark
      ? null
      : PlexApp.app.themeFromImage == null
          ? null
          : PlexApp.app.imageColorScheme;
  Color? textColor = Brightness.dark == brightness ? Colors.white : null;

  if (PlexTheme.appTheme != null) {
    return PlexTheme.appTheme!;
  }

  return ThemeData(
    colorSchemeSeed: colorSchemeSeed,
    colorScheme: colorScheme,
    useMaterial3: isMaterial3(),
    fontFamily: "Roboto",
    navigationBarTheme: NavigationBarThemeData(
        labelTextStyle: const TextStyle(fontSize: PlexFontSize.smallest).getState()),
    brightness: brightness,
    textTheme: PlexTheme.appTextTheme?.copyWith(
      displayLarge: TextStyle(color: textColor),
      displayMedium: TextStyle(color: textColor),
      displaySmall: TextStyle(color: textColor),
      headlineLarge: TextStyle(color: textColor),
      headlineMedium: TextStyle(color: textColor),
      headlineSmall: TextStyle(color: textColor),
      titleLarge: TextStyle(color: textColor),
      titleMedium: TextStyle(color: textColor),
      titleSmall: TextStyle(color: textColor),
      labelLarge: TextStyle(color: textColor),
      labelMedium: TextStyle(color: textColor),
      labelSmall: TextStyle(color: textColor),
      bodyMedium: TextStyle(color: textColor),
      bodyLarge: TextStyle(color: textColor),
      bodySmall: TextStyle(color: textColor),
    ),
  );
}