fixed issue #6

This commit is contained in:
odweta
2026-04-03 18:23:54 +02:00
parent 30591db7f3
commit 2b4e64c72f
3 changed files with 24 additions and 27 deletions
+4 -2
View File
@@ -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()
+15 -14
View File
@@ -286,21 +286,22 @@ class ListPage extends StatelessWidget {
),
ListTile(
title: Text(Strings.userPrefersDarkMode),
onTap: () { themeProvider.setDarkMode(!themeProvider.isDark); },
trailing: Row(
mainAxisSize: MainAxisSize.min,
children: [
Padding(
padding: const EdgeInsets.only(right: Constants.edgeInset),
child: Switch(
onChanged: (value) {
themeProvider.setDarkMode(value);
},
value: themeProvider.isDark
trailing: Consumer<ThemeProvider>(
builder: (context, themeProvider, _) => Row(
mainAxisSize: MainAxisSize.min,
children: [
Padding(
padding: const EdgeInsets.only(right: Constants.edgeInset),
child: Switch(
onChanged: (value) {
themeProvider.setDarkMode(value);
},
value: themeProvider.isDark,
),
),
),
Icon(Icons.dark_mode),
],
Icon(Icons.dark_mode),
],
),
),
),
],
+5 -11
View File
@@ -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);
}
}