From 9b3a6fce078690bc7474aed5b91c7d8dbe6d84b2 Mon Sep 17 00:00:00 2001 From: Rongjian Zhang Date: Mon, 31 May 2021 00:08:38 +0800 Subject: [PATCH] fix: set locale null --- lib/models/theme.dart | 8 ++++++-- lib/screens/settings.dart | 8 ++++---- 2 files changed, 10 insertions(+), 6 deletions(-) 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 setLocale(String v) async { + Future 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); - if (res && theme.locale != key) { - await theme.setLocale(key!); + ); + if (res == true && theme.locale != key) { + await theme.setLocale(key); auth.reloadApp(); } },