diff --git a/lib/main.dart b/lib/main.dart index 61c47860..72ef53f7 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -6,6 +6,7 @@ import 'package:desktop_webview_window/desktop_webview_window.dart'; import 'package:flex_color_scheme/flex_color_scheme.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/scheduler.dart'; import 'package:flutter_inappwebview/flutter_inappwebview.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:google_fonts/google_fonts.dart'; @@ -109,6 +110,16 @@ class _MyAppState extends ConsumerState { } else { ref.read(themeModeStateProvider.notifier).setDarkTheme(); } + // Listen to System theme changes and adjust accordingly + final dispatcher = SchedulerBinding.instance.platformDispatcher; + dispatcher.onPlatformBrightnessChanged = () { + var newBrightness = dispatcher.platformBrightness; + if (newBrightness == Brightness.light) { + ref.read(themeModeStateProvider.notifier).setLightTheme(); + } else { + ref.read(themeModeStateProvider.notifier).setDarkTheme(); + } + }; } }); }