diff --git a/refilc/android/app/src/main/java/hu/refilc/naplo/widget_timetable/WidgetTimetableDataProvider.java b/refilc/android/app/src/main/java/hu/refilc/naplo/widget_timetable/WidgetTimetableDataProvider.java index e62f675..4e68c21 100644 --- a/refilc/android/app/src/main/java/hu/refilc/naplo/widget_timetable/WidgetTimetableDataProvider.java +++ b/refilc/android/app/src/main/java/hu/refilc/naplo/widget_timetable/WidgetTimetableDataProvider.java @@ -248,6 +248,9 @@ public class WidgetTimetableDataProvider implements RemoteViewsService.RemoteVie } private void initData() { + // refresh theme + fullTheme = getFullTheme(context); + rday = WidgetTimetable.selectDay(context, appWidgetId, 0, false); day_subjects.clear(); diff --git a/refilc/lib/theme/observer.dart b/refilc/lib/theme/observer.dart index e5baaec..c8824a6 100644 --- a/refilc/lib/theme/observer.dart +++ b/refilc/lib/theme/observer.dart @@ -1,4 +1,20 @@ +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; @@ -13,6 +29,7 @@ class ThemeModeObserver extends ChangeNotifier { void changeTheme(ThemeMode mode, {bool updateNavbarColor = true}) { _themeMode = mode; _updateNavbarColor = updateNavbarColor; + if (Platform.isAndroid) updateWidget(); notifyListeners(); } }