made PangeaLanguage.byLangCode nullable (#1235)

This commit is contained in:
ggurdin 2024-12-12 16:20:41 -05:00 committed by GitHub
parent 43855f1ac3
commit 0b5edffbf9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 17 additions and 15 deletions

View file

@ -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;
}

View file

@ -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;
}
}

View file

@ -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;
}

View file

@ -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;