made PangeaLanguage.byLangCode nullable (#1235)
This commit is contained in:
parent
43855f1ac3
commit
0b5edffbf9
4 changed files with 17 additions and 15 deletions
|
|
@ -28,7 +28,7 @@ class LanguageController {
|
|||
_userL1Code != LanguageKeys.unknownLanguage &&
|
||||
_userL2Code != LanguageKeys.unknownLanguage;
|
||||
|
||||
LanguageModel get systemLanguage {
|
||||
LanguageModel? get systemLanguage {
|
||||
final String systemLang = Platform.localeName.split('-').first;
|
||||
return PangeaLanguage.byLangCode(systemLang);
|
||||
}
|
||||
|
|
@ -36,7 +36,7 @@ class LanguageController {
|
|||
String? get _userL1Code {
|
||||
final source =
|
||||
_pangeaController.userController.profile.userSettings.sourceLanguage;
|
||||
return source == null || source.isEmpty ? systemLanguage.langCode : source;
|
||||
return source == null || source.isEmpty ? systemLanguage?.langCode : source;
|
||||
}
|
||||
|
||||
String? get _userL2Code {
|
||||
|
|
@ -48,7 +48,7 @@ class LanguageController {
|
|||
LanguageModel? get userL1 {
|
||||
if (_userL1Code == null) return null;
|
||||
final langModel = PangeaLanguage.byLangCode(_userL1Code!);
|
||||
return langModel.langCode == LanguageKeys.unknownLanguage
|
||||
return langModel?.langCode == LanguageKeys.unknownLanguage
|
||||
? null
|
||||
: langModel;
|
||||
}
|
||||
|
|
@ -56,7 +56,7 @@ class LanguageController {
|
|||
LanguageModel? get userL2 {
|
||||
if (_userL2Code == null) return null;
|
||||
final langModel = PangeaLanguage.byLangCode(_userL2Code!);
|
||||
return langModel.langCode == LanguageKeys.unknownLanguage
|
||||
return langModel?.langCode == LanguageKeys.unknownLanguage
|
||||
? null
|
||||
: langModel;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -94,10 +94,10 @@ class PangeaLanguage {
|
|||
return flags;
|
||||
}
|
||||
|
||||
static LanguageModel byLangCode(String langCode) {
|
||||
static LanguageModel? byLangCode(String langCode) {
|
||||
for (final element in _langList) {
|
||||
if (element.langCode == langCode) return element;
|
||||
}
|
||||
return LanguageModel.unknown;
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -125,7 +125,8 @@ extension SpaceRoomExtension on Room {
|
|||
langCode == LanguageKeys.unknownLanguage) {
|
||||
continue;
|
||||
}
|
||||
final LanguageModel lang = PangeaLanguage.byLangCode(langCode);
|
||||
final LanguageModel? lang = PangeaLanguage.byLangCode(langCode);
|
||||
if (lang == null) continue;
|
||||
langCounts[lang] ??= 0;
|
||||
langCounts[lang] = langCounts[lang]! + 1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,10 +23,10 @@ Future<void> pLanguageDialog(
|
|||
//PTODO: if source language not set by user, default to languge from device settings
|
||||
final LanguageModel? userL1 = pangeaController.languageController.userL1;
|
||||
final LanguageModel? userL2 = pangeaController.languageController.userL2;
|
||||
final LanguageModel systemLanguage =
|
||||
final LanguageModel? systemLanguage =
|
||||
pangeaController.languageController.systemLanguage;
|
||||
|
||||
LanguageModel selectedSourceLanguage = systemLanguage;
|
||||
LanguageModel? selectedSourceLanguage = systemLanguage;
|
||||
if (userL1 != null && userL1.langCode != LanguageKeys.unknownLanguage) {
|
||||
selectedSourceLanguage = userL1;
|
||||
}
|
||||
|
|
@ -35,9 +35,9 @@ Future<void> pLanguageDialog(
|
|||
if (userL2 != null && userL2.langCode != LanguageKeys.unknownLanguage) {
|
||||
selectedTargetLanguage = userL2;
|
||||
} else {
|
||||
selectedTargetLanguage = selectedSourceLanguage.langCode != 'en'
|
||||
? PangeaLanguage.byLangCode('en')
|
||||
: PangeaLanguage.byLangCode('es');
|
||||
selectedTargetLanguage = selectedSourceLanguage?.langCode != 'en'
|
||||
? PangeaLanguage.byLangCode('en')!
|
||||
: PangeaLanguage.byLangCode('es')!;
|
||||
}
|
||||
|
||||
return showDialog(
|
||||
|
|
@ -61,7 +61,8 @@ Future<void> pLanguageDialog(
|
|||
PLanguageDropdown(
|
||||
onChange: (p0) =>
|
||||
setState(() => selectedSourceLanguage = p0),
|
||||
initialLanguage: selectedSourceLanguage,
|
||||
initialLanguage:
|
||||
selectedSourceLanguage ?? LanguageModel.unknown,
|
||||
languages: pangeaController.pLanguageStore.baseOptions,
|
||||
isL2List: false,
|
||||
),
|
||||
|
|
@ -87,7 +88,7 @@ Future<void> pLanguageDialog(
|
|||
),
|
||||
TextButton(
|
||||
onPressed: () {
|
||||
selectedSourceLanguage.langCode !=
|
||||
selectedSourceLanguage?.langCode !=
|
||||
selectedTargetLanguage.langCode
|
||||
? showFutureLoadingDialog(
|
||||
context: context,
|
||||
|
|
@ -97,7 +98,7 @@ Future<void> pLanguageDialog(
|
|||
.updateProfile(
|
||||
(profile) {
|
||||
profile.userSettings.sourceLanguage =
|
||||
selectedSourceLanguage.langCode;
|
||||
selectedSourceLanguage?.langCode;
|
||||
profile.userSettings.targetLanguage =
|
||||
selectedTargetLanguage.langCode;
|
||||
return profile;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue