diff --git a/lib/ui/theme/dynamic_theme_builder.dart b/lib/ui/theme/dynamic_theme_builder.dart index c6255a1f..d57cf153 100644 --- a/lib/ui/theme/dynamic_theme_builder.dart +++ b/lib/ui/theme/dynamic_theme_builder.dart @@ -76,7 +76,7 @@ class DynamicThemeBuilder extends StatelessWidget { 2: lightDynamicTheme, 3: darkDynamicTheme, }, - fallbackTheme: darkCustomTheme, + fallbackTheme: lightCustomTheme, ), builder: (context, theme) => MaterialApp( debugShowCheckedModeBanner: false, diff --git a/lib/ui/views/navigation/navigation_view.dart b/lib/ui/views/navigation/navigation_view.dart index ccf12616..74fdf21b 100644 --- a/lib/ui/views/navigation/navigation_view.dart +++ b/lib/ui/views/navigation/navigation_view.dart @@ -11,6 +11,7 @@ class NavigationView extends StatelessWidget { @override Widget build(BuildContext context) { return ViewModelBuilder.reactive( + onModelReady: (model) => model.initialize(context), viewModelBuilder: () => locator(), builder: (context, model, child) => Scaffold( body: PageTransitionSwitcher( diff --git a/lib/ui/views/navigation/navigation_viewmodel.dart b/lib/ui/views/navigation/navigation_viewmodel.dart index 85974626..684354cd 100644 --- a/lib/ui/views/navigation/navigation_viewmodel.dart +++ b/lib/ui/views/navigation/navigation_viewmodel.dart @@ -1,12 +1,28 @@ +// ignore_for_file: use_build_context_synchronously +import 'package:dynamic_themes/dynamic_themes.dart'; import 'package:flutter/material.dart'; import 'package:injectable/injectable.dart'; import 'package:revanced_manager/ui/views/home/home_view.dart'; import 'package:revanced_manager/ui/views/patcher/patcher_view.dart'; import 'package:revanced_manager/ui/views/settings/settings_view.dart'; +import 'package:shared_preferences/shared_preferences.dart'; import 'package:stacked/stacked.dart'; @lazySingleton class NavigationViewModel extends IndexTrackingViewModel { + void initialize(BuildContext context) async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + if (prefs.getBool('useDarkTheme') == null) { + if (MediaQuery.of(context).platformBrightness == Brightness.light) { + await prefs.setBool('useDarkTheme', false); + DynamicTheme.of(context)!.setTheme(0); + } else { + await prefs.setBool('useDarkTheme', true); + DynamicTheme.of(context)!.setTheme(1); + } + } + } + Widget getViewForIndex(int index) { switch (index) { case 0: