fixed issue #6
This commit is contained in:
@@ -16,7 +16,9 @@ import 'pages/flashcards.dart';
|
||||
import 'pages/leaderboard.dart';
|
||||
//import 'pages/settings.dart';
|
||||
|
||||
void main() {
|
||||
void main() async {
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
final isDark = await loadDarkMode();
|
||||
runApp(
|
||||
MultiProvider(
|
||||
providers: [
|
||||
@@ -24,7 +26,7 @@ void main() {
|
||||
create: (_) => QuoteProvider()
|
||||
),
|
||||
ChangeNotifierProvider(
|
||||
create: (_) => ThemeProvider()
|
||||
create: (_) => ThemeProvider(isDark: isDark)
|
||||
)
|
||||
],
|
||||
child: HlaskovnikFrontendApp()
|
||||
|
||||
@@ -286,8 +286,8 @@ class ListPage extends StatelessWidget {
|
||||
),
|
||||
ListTile(
|
||||
title: Text(Strings.userPrefersDarkMode),
|
||||
onTap: () { themeProvider.setDarkMode(!themeProvider.isDark); },
|
||||
trailing: Row(
|
||||
trailing: Consumer<ThemeProvider>(
|
||||
builder: (context, themeProvider, _) => Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Padding(
|
||||
@@ -296,13 +296,14 @@ class ListPage extends StatelessWidget {
|
||||
onChanged: (value) {
|
||||
themeProvider.setDarkMode(value);
|
||||
},
|
||||
value: themeProvider.isDark
|
||||
value: themeProvider.isDark,
|
||||
),
|
||||
),
|
||||
Icon(Icons.dark_mode),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
|
||||
@@ -13,22 +13,16 @@ Future<bool> loadDarkMode() async {
|
||||
}
|
||||
|
||||
class ThemeProvider extends ChangeNotifier {
|
||||
bool _isDark = false;
|
||||
bool _isDark;
|
||||
|
||||
bool get isDark => _isDark;
|
||||
|
||||
ThemeProvider() {
|
||||
_load(); // load saved value on startup
|
||||
}
|
||||
ThemeProvider({required bool isDark}) : _isDark = isDark;
|
||||
|
||||
void _load() async {
|
||||
_isDark = await loadDarkMode();
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
void setDarkMode(bool value) async {
|
||||
void setDarkMode(bool value) {
|
||||
if (_isDark == value) return; // avoid unnecessary rebuilds
|
||||
_isDark = value;
|
||||
notifyListeners();
|
||||
await saveDarkMode(value);
|
||||
saveDarkMode(value);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user