diff --git a/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/edit/nutrition/ProductEditNutritionFactsFragment.kt b/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/edit/nutrition/ProductEditNutritionFactsFragment.kt index 5af985ba331c..4172701b97c0 100644 --- a/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/edit/nutrition/ProductEditNutritionFactsFragment.kt +++ b/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/edit/nutrition/ProductEditNutritionFactsFragment.kt @@ -310,13 +310,16 @@ class ProductEditNutritionFactsFragment : ProductEditFragment() { getModifierIndex(nutriments[nutriment]?.modifier) private fun updateServingSize(servingSize: String) { + try { + val (value, unit) = parseServing(servingSize) - val (value, unit) = parseServing(servingSize) - - binding.servingSize.setText(value) + binding.servingSize.setText(value) - if (unit != null) { - binding.servingSize.unitSpinner?.setSelection(getServingUnitIndex(unit)) + if (unit != null) { + binding.servingSize.unitSpinner?.setSelection(getServingUnitIndex(unit)) + } + } catch (exception : IllegalArgumentException) { + binding.servingSize.setText("") } } diff --git a/app/src/main/java/openfoodfacts/github/scrachx/openfood/utils/LocaleManager.kt b/app/src/main/java/openfoodfacts/github/scrachx/openfood/utils/LocaleManager.kt index d69951e1cc34..d661e7898fa3 100644 --- a/app/src/main/java/openfoodfacts/github/scrachx/openfood/utils/LocaleManager.kt +++ b/app/src/main/java/openfoodfacts/github/scrachx/openfood/utils/LocaleManager.kt @@ -40,12 +40,14 @@ class LocaleManager @Inject constructor( private var currentLocale: Locale init { - currentLocale = getLanguageFromPrefs()?.let { - LocaleUtils.parseLocale(it) - } ?: Locale.getDefault() + currentLocale = reloadLocale() } - fun restoreLocalizedContext(context: Context) = changeAppLanguage(context, currentLocale) + fun restoreLocalizedContext(context: Context): Context = changeAppLanguage(context, reloadLocale()) + + private fun reloadLocale() = getLanguageFromPrefs()?.let { + LocaleUtils.parseLocale(it) + } ?: Locale.getDefault() /** * Get the language of the app [Locale] (Selected in settings).