Skip to content

Commit 24a2283

Browse files
committed
Fix theme
1 parent 3e5349b commit 24a2283

File tree

5 files changed

+457
-41
lines changed

5 files changed

+457
-41
lines changed

lib/app/app.dart

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import 'package:flutter_bloc_app_template/bloc/init/init_bloc.dart';
55
import 'package:flutter_bloc_app_template/di/di_container.dart';
66
import 'package:flutter_bloc_app_template/generated/l10n.dart';
77
import 'package:flutter_bloc_app_template/index.dart';
8+
import 'package:flutter_bloc_app_template/theme/util.dart';
89
import 'package:flutter_localizations/flutter_localizations.dart';
910

1011
class MyApp extends StatelessWidget {
@@ -45,6 +46,12 @@ class MyApp extends StatelessWidget {
4546
child: Builder(
4647
builder: (context) {
4748
final navigator = NavigationService.of(context);
49+
// Retrieves the default theme for the platform
50+
//TextTheme textTheme = Theme.of(context).textTheme;
51+
52+
// Use with Google Fonts package to use downloadable fonts
53+
var textTheme = createTextTheme(context, 'Rubik', 'Rubik');
54+
var theme = MaterialTheme(textTheme);
4855

4956
return MaterialApp(
5057
debugShowCheckedModeBanner: kDebugMode,
@@ -61,8 +68,8 @@ class MyApp extends StatelessWidget {
6168
],
6269
onGenerateTitle: (BuildContext context) =>
6370
S.of(context).appTitle,
64-
theme: context.watch<ThemeCubit>().getDefaultTheme(),
65-
darkTheme: context.watch<ThemeCubit>().darkTheme,
71+
theme: context.watch<ThemeCubit>().getDefaultTheme(theme),
72+
darkTheme: theme.dark(),
6673
themeMode: context.watch<ThemeCubit>().themeMode,
6774
navigatorKey: appNavigatorKey,
6875
onGenerateRoute: navigator.onGenerateRoute,

lib/bloc/theme/theme_cubit.dart

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,20 @@ import 'package:flutter_bloc_app_template/bloc/theme/app_theme.dart';
44
import 'package:flutter_bloc_app_template/index.dart';
55
import 'package:flutter_bloc_app_template/repository/theme_repository.dart';
66

7-
final Map<AppTheme, ThemeData> themeData = {
8-
AppTheme.system: Style.light,
9-
AppTheme.light: Style.light,
10-
AppTheme.lightGold: Style.lightGoldTheme,
11-
AppTheme.lightMint: Style.lightMintTheme,
12-
AppTheme.dark: Style.dark,
13-
AppTheme.darkGold: Style.darkGoldTheme,
14-
AppTheme.darkMint: Style.darkMintTheme,
15-
AppTheme.experimental: Style.experimental,
16-
};
7+
Map<AppTheme, ThemeData> getThemeData(MaterialTheme theme) {
8+
final themeData = <AppTheme, ThemeData>{
9+
AppTheme.system: theme.light(),
10+
AppTheme.light: theme.light(),
11+
AppTheme.lightGold: theme.lightHighContrast(),
12+
AppTheme.lightMint: theme.lightMediumContrast(),
13+
AppTheme.dark: theme.dark(),
14+
AppTheme.darkGold: theme.darkHighContrast(),
15+
AppTheme.darkMint: theme.darkMediumContrast(),
16+
AppTheme.experimental: theme.darkMediumContrast(),
17+
};
18+
19+
return themeData;
20+
}
1721

1822
/// Saves and loads information regarding the theme setting.
1923
class ThemeCubit extends Cubit<AppTheme> {
@@ -55,27 +59,28 @@ class ThemeCubit extends Cubit<AppTheme> {
5559
}
5660

5761
/// Default theme
58-
ThemeData getDefaultTheme() {
62+
ThemeData getDefaultTheme(MaterialTheme theme) {
63+
final themeData = getThemeData(theme);
5964
switch (state) {
6065
case AppTheme.light:
61-
return themeData[AppTheme.light] ?? Style.light;
66+
return themeData[AppTheme.light] ?? theme.light();
6267
case AppTheme.lightGold:
63-
return themeData[AppTheme.lightGold] ?? Style.light;
68+
return themeData[AppTheme.lightGold] ?? theme.light();
6469
case AppTheme.lightMint:
65-
return themeData[AppTheme.lightMint] ?? Style.light;
70+
return themeData[AppTheme.lightMint] ?? theme.light();
6671
case AppTheme.dark:
67-
return themeData[AppTheme.dark] ?? Style.dark;
72+
return themeData[AppTheme.dark] ?? theme.dark();
6873
case AppTheme.darkGold:
69-
return themeData[AppTheme.darkGold] ?? Style.dark;
74+
return themeData[AppTheme.darkGold] ?? theme.dark();
7075
case AppTheme.darkMint:
71-
return themeData[AppTheme.darkMint] ?? Style.dark;
76+
return themeData[AppTheme.darkMint] ?? theme.dark();
7277
case AppTheme.system:
73-
return themeData[AppTheme.system] ?? Style.light;
78+
return themeData[AppTheme.system] ?? theme.light();
7479
case AppTheme.experimental:
75-
return themeData[AppTheme.experimental] ?? Style.light;
80+
return themeData[AppTheme.experimental] ?? theme.light();
7681
}
7782
}
7883

7984
/// Default dark theme
80-
ThemeData get darkTheme => themeData[AppTheme.dark] ?? Style.dark;
85+
//ThemeData get darkTheme => themeData[AppTheme.dark] ?? Style.dark;
8186
}

0 commit comments

Comments
 (0)