11import 'dart:async' ;
22
3+ import 'package:geocoding/geocoding.dart' ;
34import 'package:intl/intl.dart' ;
45import 'package:flutter/material.dart' ;
56import 'package:mosquito_alert_app/pages/settings_pages/consent_form.dart' ;
@@ -23,8 +24,7 @@ class UserManager {
2324
2425 await prefs.setBool ('firstTime' , true );
2526
26- await setLanguage (Utils .language.languageCode);
27- await setLanguageCountry (Utils .language.countryCode);
27+ await setLocale (Utils .language);
2828
2929 await Navigator .of (context).push (
3030 MaterialPageRoute (
@@ -47,15 +47,26 @@ class UserManager {
4747 }
4848
4949 //set
50- static Future <void > setLanguage (language) async {
50+ static Future <void > setLocale (Locale locale) async {
51+ final String languageCode = locale.languageCode;
52+ final String ? countryCode = locale.countryCode;
53+
54+ final String localeIdentifier =
55+ countryCode != null ? '${languageCode }_$countryCode ' : languageCode;
56+ await setLocaleIdentifier (localeIdentifier); // From geolocator.
57+ await _setLanguage (languageCode);
58+ await _setLanguageCountry (countryCode ?? '' );
59+ }
60+
61+ static Future <void > _setLanguage (String language) async {
5162 var prefs = await SharedPreferences .getInstance ();
5263 // NOTE: this is important for DateFormat to work correctly
5364 Intl .defaultLocale = Intl .verifiedLocale (language, DateFormat .localeExists,
5465 onFailure: (newLocale) => 'en' );
5566 await prefs.setString ('language' , language);
5667 }
5768
58- static Future <void > setLanguageCountry ( lngCountry) async {
69+ static Future <void > _setLanguageCountry ( String lngCountry) async {
5970 var prefs = await SharedPreferences .getInstance ();
6071 await prefs.setString ('languageCountry' , lngCountry);
6172 }
@@ -89,10 +100,6 @@ class UserManager {
89100 return prefs.getString ('languageCountry' );
90101 }
91102
92- static Future <String ?> getUserLocale () async {
93- return '${await UserManager .getLanguage ()}_${await UserManager .getLanguageCountry ()}' ;
94- }
95-
96103 static Future <void > migrateHashtagToHashtags () async {
97104 final prefs = await SharedPreferences .getInstance ();
98105
0 commit comments