diff --git a/lib/models/theme.dart b/lib/models/theme.dart index c524e4e..6ef5d6e 100644 --- a/lib/models/theme.dart +++ b/lib/models/theme.dart @@ -166,10 +166,14 @@ class ThemeModel with ChangeNotifier { String? _locale; String? get locale => _locale; - Future<void> setLocale(String v) async { + Future<void> setLocale(String? v) async { _locale = v; final prefs = await SharedPreferences.getInstance(); - await prefs.setString(StorageKeys.locale, v); + if (v == null) { + await prefs.remove(StorageKeys.locale); + } else { + await prefs.setString(StorageKeys.locale, v); + } notifyListeners(); } diff --git a/lib/screens/settings.dart b/lib/screens/settings.dart index c229892..e2a6ca6 100644 --- a/lib/screens/settings.dart +++ b/lib/screens/settings.dart @@ -86,13 +86,13 @@ class SettingsScreen extends StatelessWidget { ? AppLocalizations.of(context)!.followSystem : localeNameMap[key], onTap: (_) async { - final res = await (theme.showConfirm( + final res = await theme.showConfirm( context, Text( 'The app will reload to make the language setting take effect'), - ) as Future<bool>); - if (res && theme.locale != key) { - await theme.setLocale(key!); + ); + if (res == true && theme.locale != key) { + await theme.setLocale(key); auth.reloadApp(); } },