import 'dart:io'; import 'package:flutter/material.dart'; import 'package:home_widget/home_widget.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart'; Future updateWidget() async { try { return HomeWidget.updateWidget(name: 'widget_timetable.WidgetTimetable'); } on PlatformException catch (exception) { if (kDebugMode) { print('Error Updating Widget After changeTheme. $exception'); } } return false; } class ThemeModeObserver extends ChangeNotifier { ThemeMode _themeMode; bool _updateNavbarColor; ThemeMode get themeMode => _themeMode; bool get updateNavbarColor => _updateNavbarColor; ThemeModeObserver({ThemeMode initialTheme = ThemeMode.system, bool updateNavbarColor = true}) : _themeMode = initialTheme, _updateNavbarColor = updateNavbarColor; void changeTheme(ThemeMode mode, {bool updateNavbarColor = true}) { _themeMode = mode; _updateNavbarColor = updateNavbarColor; if (Platform.isAndroid) updateWidget(); notifyListeners(); } }