getThemeByBrightness static method
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),
),
);
}