From 06ca72e0f864449f8105675f68cd3661b70a2348 Mon Sep 17 00:00:00 2001 From: sangharshdeveloper Date: Fri, 17 Jan 2025 22:19:54 +0530 Subject: [PATCH] #687 enhancement theme-customization --- AUTHORS.md | 1 + lib/l10n/app_en.arb | 1 + lib/main.dart | 2 +- lib/providers/auth.dart | 10 +++++----- lib/widgets/core/settings.dart | 2 +- 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/AUTHORS.md b/AUTHORS.md index e8e7ac60..d886c6d7 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -32,6 +32,7 @@ - sizzlesloth - - Arya Singh - - Xianglin Zeng - +- Sangharsh Sulke - ## Translators diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 33108f7d..1326f029 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -913,4 +913,5 @@ "@indicatorAvg": { "description": "added for localization of Class Indicator's field text" } + "dark_mode":"Dark Mode", } diff --git a/lib/main.dart b/lib/main.dart index 4a03a517..8c5b3428 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -141,7 +141,7 @@ class MyApp extends StatelessWidget { darkTheme: wgerDarkTheme, highContrastTheme: wgerLightThemeHc, highContrastDarkTheme: wgerDarkThemeHc, - themeMode: auth.themeMode, // Change theme based on provider's themeMode + themeMode: ThemeMode.system, home: auth.isAuth ? const HomeTabsScreen() : FutureBuilder( diff --git a/lib/providers/auth.dart b/lib/providers/auth.dart index a58b06d2..56a40317 100644 --- a/lib/providers/auth.dart +++ b/lib/providers/auth.dart @@ -57,10 +57,10 @@ class AuthProvider with ChangeNotifier { _loadThemeMode(); } - bool _isSwitched = false; + bool _isLightTheme = false; ThemeMode _themeMode = ThemeMode.light; - bool get isSwitched => _isSwitched; + bool get isSwitched => _isLightTheme; ThemeMode get themeMode => _themeMode; /// flag to indicate that the application has successfully loaded all initial data @@ -75,18 +75,18 @@ class AuthProvider with ChangeNotifier { final prefs = await SharedPreferences.getInstance(); final isDarkMode = prefs.getBool('isDarkMode') ?? false; // Default to false (light mode) _themeMode = isDarkMode ? ThemeMode.dark : ThemeMode.light; - _isSwitched = isDarkMode; + _isLightTheme = isDarkMode; notifyListeners(); // Notify listeners when theme is loaded } // Change mode on switch button click void toggleSwitch(bool value) async { - _isSwitched = value; + _isLightTheme = value; _themeMode = value ? ThemeMode.dark : ThemeMode.light; // Save to SharedPreferences final prefs = await SharedPreferences.getInstance(); - await prefs.setBool('isDarkMode', _isSwitched); + await prefs.setBool('isDarkMode', _isLightTheme); notifyListeners(); // Notify listeners when the theme is updated } diff --git a/lib/widgets/core/settings.dart b/lib/widgets/core/settings.dart index 941a199d..16eece4f 100644 --- a/lib/widgets/core/settings.dart +++ b/lib/widgets/core/settings.dart @@ -81,7 +81,7 @@ class SettingsPage extends StatelessWidget { ), ), ListTile( - title: Text('Dark Mode'), + title: Text(AppLocalizations.of(context).darkMode), trailing: Switch( value: switchProvider.isSwitched, // Use the state from the provider onChanged: (value) {