From 1e49f8550d51610004d27b16c28758dfca1a3744 Mon Sep 17 00:00:00 2001 From: VaiTon Date: Sat, 18 Mar 2023 16:25:51 +0100 Subject: [PATCH] refactor: move methods of SearchProduct to extensions --- .../features/FullScreenActivityOpener.kt | 3 +- .../features/adapters/ProductSearchAdapter.kt | 3 +- .../features/compare/ProductCompareAdapter.kt | 3 +- .../images/manage/ImagesManageActivity.kt | 3 +- .../ingredients/EditIngredientsFragment.kt | 3 +- .../environment/EnvironmentProductFragment.kt | 3 +- .../ingredients/IngredientsProductFragment.kt | 9 +-- .../view/summary/SummaryProductFragment.kt | 6 +- .../productlist/ProductListViewModel.kt | 5 +- .../scanhistory/ScanHistoryViewModel.kt | 3 +- .../github/scrachx/openfood/models/Product.kt | 17 +----- .../scrachx/openfood/models/SearchProduct.kt | 59 +++++++++++-------- .../repositories/HistoryRepository.kt | 3 +- .../repositories/ProductRepository.kt | 3 +- 14 files changed, 67 insertions(+), 56 deletions(-) diff --git a/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/FullScreenActivityOpener.kt b/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/FullScreenActivityOpener.kt index 1f638af4a21a..dee0732758fa 100644 --- a/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/FullScreenActivityOpener.kt +++ b/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/FullScreenActivityOpener.kt @@ -16,6 +16,7 @@ import openfoodfacts.github.scrachx.openfood.images.ImageSize import openfoodfacts.github.scrachx.openfood.images.createImageBundle import openfoodfacts.github.scrachx.openfood.models.Product import openfoodfacts.github.scrachx.openfood.models.ProductImageField +import openfoodfacts.github.scrachx.openfood.models.getSelectedImageUrl import openfoodfacts.github.scrachx.openfood.repositories.ProductRepository import openfoodfacts.github.scrachx.openfood.utils.Intent import openfoodfacts.github.scrachx.openfood.utils.isAbsoluteUrl @@ -99,7 +100,7 @@ object FullScreenActivityOpener { language: String, ) { client.getProductImages(product.barcode).product?.let { newProduct -> - val imageUrl = newProduct.getSelectedImage(language, imageType, ImageSize.DISPLAY) + val imageUrl = newProduct.getSelectedImageUrl(language, imageType, ImageSize.DISPLAY) if (!imageUrl.isNullOrBlank()) { openForUrl(activity, client, newProduct, imageType, imageUrl, mImageFront, language) } else { diff --git a/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/adapters/ProductSearchAdapter.kt b/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/adapters/ProductSearchAdapter.kt index db525c2a4300..6968c1255826 100644 --- a/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/adapters/ProductSearchAdapter.kt +++ b/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/adapters/ProductSearchAdapter.kt @@ -14,6 +14,7 @@ import openfoodfacts.github.scrachx.openfood.AppFlavor.Companion.isFlavors import openfoodfacts.github.scrachx.openfood.AppFlavor.OFF import openfoodfacts.github.scrachx.openfood.R import openfoodfacts.github.scrachx.openfood.models.SearchProduct +import openfoodfacts.github.scrachx.openfood.models.getSmallFrontImageUrl import openfoodfacts.github.scrachx.openfood.repositories.ProductRepository import openfoodfacts.github.scrachx.openfood.utils.LocaleManager import openfoodfacts.github.scrachx.openfood.utils.getEcoscoreResource @@ -47,7 +48,7 @@ class ProductSearchAdapter( val product = products[position]!! holder.imageProgress.visibility = View.VISIBLE - val imageSmallUrl = product.getImageSmallUrl(localeManager.getLanguage()) + val imageSmallUrl = product.getSmallFrontImageUrl(localeManager.getLanguage()) if (imageSmallUrl == null) { holder.imageProgress.visibility = View.GONE } diff --git a/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/compare/ProductCompareAdapter.kt b/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/compare/ProductCompareAdapter.kt index 5c4896269b21..687f08fc354b 100644 --- a/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/compare/ProductCompareAdapter.kt +++ b/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/compare/ProductCompareAdapter.kt @@ -47,6 +47,7 @@ import openfoodfacts.github.scrachx.openfood.models.Product import openfoodfacts.github.scrachx.openfood.models.ProductImageField import openfoodfacts.github.scrachx.openfood.models.buildLevelItem import openfoodfacts.github.scrachx.openfood.models.entities.additive.AdditiveName +import openfoodfacts.github.scrachx.openfood.models.getFrontImageUrl import openfoodfacts.github.scrachx.openfood.repositories.ProductRepository import openfoodfacts.github.scrachx.openfood.utils.MY_PERMISSIONS_REQUEST_CAMERA import openfoodfacts.github.scrachx.openfood.utils.getEcoscoreResource @@ -115,7 +116,7 @@ class ProductCompareAdapter( addProductButton.setText(R.string.add_another_product) // Image - val imageUrl = product.getImageUrl(language) + val imageUrl = product.getFrontImageUrl(language) holder.binding.productComparisonImage.setOnClickListener { if (imageUrl != null) { lifecycleOwner.lifecycle.coroutineScope.launchWhenCreated { diff --git a/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/images/manage/ImagesManageActivity.kt b/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/images/manage/ImagesManageActivity.kt index 05b08c9fabd2..8e06f7b14885 100644 --- a/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/images/manage/ImagesManageActivity.kt +++ b/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/images/manage/ImagesManageActivity.kt @@ -71,6 +71,7 @@ import openfoodfacts.github.scrachx.openfood.models.LanguageData import openfoodfacts.github.scrachx.openfood.models.Product import openfoodfacts.github.scrachx.openfood.models.ProductImageField import openfoodfacts.github.scrachx.openfood.models.findByCode +import openfoodfacts.github.scrachx.openfood.models.getSelectedImageUrl import openfoodfacts.github.scrachx.openfood.network.ApiFields import openfoodfacts.github.scrachx.openfood.repositories.ProductRepository import openfoodfacts.github.scrachx.openfood.utils.FileDownloader @@ -410,7 +411,7 @@ class ImagesManageActivity : BaseActivity() { } private fun getImageUrlToDisplay(product: Product) = - product.getSelectedImage(getCurrentLanguage(), getSelectedType(), ImageSize.DISPLAY) + product.getSelectedImageUrl(getCurrentLanguage(), getSelectedType(), ImageSize.DISPLAY) private fun getCurrentImageUrl() = intent.getStringExtra(IMAGE_URL) diff --git a/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/edit/ingredients/EditIngredientsFragment.kt b/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/edit/ingredients/EditIngredientsFragment.kt index 893fcd1a1da5..4be424ad0c72 100644 --- a/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/edit/ingredients/EditIngredientsFragment.kt +++ b/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/edit/ingredients/EditIngredientsFragment.kt @@ -51,6 +51,7 @@ import openfoodfacts.github.scrachx.openfood.models.Product import openfoodfacts.github.scrachx.openfood.models.ProductImageField import openfoodfacts.github.scrachx.openfood.models.entities.OfflineSavedProduct import openfoodfacts.github.scrachx.openfood.models.entities.allergen.AllergenNameDao +import openfoodfacts.github.scrachx.openfood.models.getIngredientsImageUrl import openfoodfacts.github.scrachx.openfood.network.ApiFields import openfoodfacts.github.scrachx.openfood.network.ApiFields.Keys.lcIngredientsKey import openfoodfacts.github.scrachx.openfood.repositories.ProductRepository @@ -225,7 +226,7 @@ class EditIngredientsFragment : ProductEditFragment() { if (getAddProductActivity() == null) return val newImageIngredientsUrl = - product!!.getImageIngredientsUrl(getAddProductActivity()!!.getProductLanguageForEdition()) + product!!.getIngredientsImageUrl(getAddProductActivity()!!.getProductLanguageForEdition()) photoFile = null if (newImageIngredientsUrl != null && newImageIngredientsUrl.isNotEmpty()) { binding.imageProgress.visibility = View.VISIBLE diff --git a/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/view/environment/EnvironmentProductFragment.kt b/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/view/environment/EnvironmentProductFragment.kt index ae5964fb7ee2..4a5c60756888 100644 --- a/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/view/environment/EnvironmentProductFragment.kt +++ b/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/view/environment/EnvironmentProductFragment.kt @@ -30,6 +30,7 @@ import openfoodfacts.github.scrachx.openfood.models.Nutriment import openfoodfacts.github.scrachx.openfood.models.Product import openfoodfacts.github.scrachx.openfood.models.ProductImageField import openfoodfacts.github.scrachx.openfood.models.ProductState +import openfoodfacts.github.scrachx.openfood.models.getPackagingImageUrl import openfoodfacts.github.scrachx.openfood.network.ApiFields import openfoodfacts.github.scrachx.openfood.repositories.ProductRepository import openfoodfacts.github.scrachx.openfood.utils.LocaleManager @@ -99,7 +100,7 @@ class EnvironmentProductFragment : BaseFragment() { product = productState.product!! val nutriments = product.nutriments - val imagePackagingUrl = product.getImagePackagingUrl(langCode) + val imagePackagingUrl = product.getPackagingImageUrl(langCode) if (!imagePackagingUrl.isNullOrBlank()) { binding.packagingImagetipBox.setTipMessage(getString(R.string.onboarding_hint_msg, getString(R.string.image_edit_tip))) diff --git a/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/view/ingredients/IngredientsProductFragment.kt b/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/view/ingredients/IngredientsProductFragment.kt index e5792463d2df..140f9aebf160 100644 --- a/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/view/ingredients/IngredientsProductFragment.kt +++ b/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/view/ingredients/IngredientsProductFragment.kt @@ -62,6 +62,7 @@ import openfoodfacts.github.scrachx.openfood.models.entities.SendProduct import openfoodfacts.github.scrachx.openfood.models.entities.additive.AdditiveName import openfoodfacts.github.scrachx.openfood.models.entities.allergen.AllergenName import openfoodfacts.github.scrachx.openfood.models.entities.allergen.AllergenNameDao +import openfoodfacts.github.scrachx.openfood.models.getIngredientsImageUrl import openfoodfacts.github.scrachx.openfood.repositories.ProductRepository import openfoodfacts.github.scrachx.openfood.repositories.TaxonomiesRepository import openfoodfacts.github.scrachx.openfood.repositories.WikidataRepository @@ -262,7 +263,7 @@ class IngredientsProductFragment : BaseFragment() { } - if (!product.getImageIngredientsUrl(langCode).isNullOrBlank()) { + if (!product.getIngredientsImageUrl(langCode).isNullOrBlank()) { binding.ingredientImagetipBox.setTipMessage(getString(R.string.onboarding_hint_msg, getString(R.string.image_edit_tip))) binding.ingredientImagetipBox.loadToolTip() @@ -271,11 +272,11 @@ class IngredientsProductFragment : BaseFragment() { // Load Image if isLowBatteryMode is false if (!requireContext().isPowerSaveMode()) { - picasso.load(product.getImageIngredientsUrl(langCode)).into(binding.imageViewIngredients) + picasso.load(product.getIngredientsImageUrl(langCode)).into(binding.imageViewIngredients) } else { binding.imageViewIngredients.visibility = View.GONE } - ingredientsImgUrl = product.getImageIngredientsUrl(langCode) + ingredientsImgUrl = product.getIngredientsImageUrl(langCode) } //useful when this fragment is used in offline saving @@ -299,7 +300,7 @@ class IngredientsProductFragment : BaseFragment() { } } else { binding.cvTextIngredientProduct.visibility = View.GONE - if (!product.getImageIngredientsUrl(langCode).isNullOrBlank()) { + if (!product.getIngredientsImageUrl(langCode).isNullOrBlank()) { binding.extractIngredientsPrompt.visibility = View.VISIBLE } } diff --git a/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/view/summary/SummaryProductFragment.kt b/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/view/summary/SummaryProductFragment.kt index e815167295b1..7b8fe7fde9bf 100644 --- a/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/view/summary/SummaryProductFragment.kt +++ b/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/view/summary/SummaryProductFragment.kt @@ -98,6 +98,8 @@ import openfoodfacts.github.scrachx.openfood.models.entities.analysistagconfig.A import openfoodfacts.github.scrachx.openfood.models.entities.category.CategoryName import openfoodfacts.github.scrachx.openfood.models.entities.label.LabelName import openfoodfacts.github.scrachx.openfood.models.entities.tag.TagDao +import openfoodfacts.github.scrachx.openfood.models.getFrontImageUrl +import openfoodfacts.github.scrachx.openfood.models.getSmallFrontImageUrl import openfoodfacts.github.scrachx.openfood.repositories.ProductRepository import openfoodfacts.github.scrachx.openfood.repositories.RobotoffRepository import openfoodfacts.github.scrachx.openfood.repositories.TaxonomiesRepository @@ -349,7 +351,7 @@ class SummaryProductFragment : BaseFragment(), ISummaryProductPresenter.View { } val langCode = localeManager.getLanguage() - val imageUrl = product.getImageUrl(langCode) + val imageUrl = product.getFrontImageUrl(langCode) if (!imageUrl.isNullOrBlank()) { binding.addPhotoLabel.visibility = View.GONE @@ -907,7 +909,7 @@ class SummaryProductFragment : BaseFragment(), ISummaryProductPresenter.View { it.listName = list.listName it.productName = product.productName it.productDetails = product.getProductBrandsQuantityDetails() - it.imageUrl = product.getImageSmallUrl(localeManager.getLanguage()) + it.imageUrl = product.getSmallFrontImageUrl(localeManager.getLanguage()) } addListedProductToDatabase(product, list) matomoAnalytics.trackEvent(AnalyticsEvent.ShoppingListProductAdded(product.barcode)) diff --git a/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/productlist/ProductListViewModel.kt b/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/productlist/ProductListViewModel.kt index 611d2a59c236..47a6c38d8609 100644 --- a/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/productlist/ProductListViewModel.kt +++ b/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/productlist/ProductListViewModel.kt @@ -12,6 +12,7 @@ import openfoodfacts.github.scrachx.openfood.models.HistoryProductDao import openfoodfacts.github.scrachx.openfood.models.Product import openfoodfacts.github.scrachx.openfood.models.entities.ListedProduct import openfoodfacts.github.scrachx.openfood.models.entities.ProductLists +import openfoodfacts.github.scrachx.openfood.models.getSmallFrontImageUrl import openfoodfacts.github.scrachx.openfood.utils.* import java.util.* import javax.inject.Inject @@ -123,7 +124,7 @@ class ProductListViewModel @Inject constructor( val product = savedStateHandle.get(ProductListActivity.KEY_PRODUCT_TO_ADD) ?: return val locale = localeManager.getLanguage() - if (product.productName != null && product.getImageSmallUrl(locale) != null) { + if (product.productName != null && product.getSmallFrontImageUrl(locale) != null) { val listedProduct = ListedProduct().also { it.listId = listId @@ -131,7 +132,7 @@ class ProductListViewModel @Inject constructor( it.barcode = product.code it.productName = product.productName it.productDetails = product.getProductBrandsQuantityDetails() - it.imageUrl = product.getImageSmallUrl(locale) + it.imageUrl = product.getSmallFrontImageUrl(locale) } daoSession.listedProductDao.insertOrReplace(listedProduct) diff --git a/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/scanhistory/ScanHistoryViewModel.kt b/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/scanhistory/ScanHistoryViewModel.kt index a14568bf169e..50feb4835267 100644 --- a/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/scanhistory/ScanHistoryViewModel.kt +++ b/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/scanhistory/ScanHistoryViewModel.kt @@ -11,6 +11,7 @@ import openfoodfacts.github.scrachx.openfood.R import openfoodfacts.github.scrachx.openfood.models.DaoSession import openfoodfacts.github.scrachx.openfood.models.HistoryProduct import openfoodfacts.github.scrachx.openfood.models.HistoryProductDao +import openfoodfacts.github.scrachx.openfood.models.getSmallFrontImageUrl import openfoodfacts.github.scrachx.openfood.repositories.ProductRepository import openfoodfacts.github.scrachx.openfood.utils.* import javax.inject.Inject @@ -64,7 +65,7 @@ class ScanHistoryViewModel @Inject constructor( product.productName?.let { historyProduct.title = it } product.brands?.let { historyProduct.brands = it } - product.getImageSmallUrl(localeManager.getLanguage())?.let { historyProduct.url = it } + product.getSmallFrontImageUrl(localeManager.getLanguage())?.let { historyProduct.url = it } product.quantity?.let { historyProduct.quantity = it } product.nutritionGradeFr?.let { historyProduct.nutritionGrade = it } product.ecoscore?.let { historyProduct.ecoscore = it } diff --git a/app/src/main/java/openfoodfacts/github/scrachx/openfood/models/Product.kt b/app/src/main/java/openfoodfacts/github/scrachx/openfood/models/Product.kt index 10b773bec253..570d85b2e621 100644 --- a/app/src/main/java/openfoodfacts/github/scrachx/openfood/models/Product.kt +++ b/app/src/main/java/openfoodfacts/github/scrachx/openfood/models/Product.kt @@ -291,18 +291,9 @@ class Product : SearchProduct() { fun getIngredientsText(languageCode: String) = getFieldForLanguage(ApiFields.Keys.INGREDIENTS_TEXT, languageCode) ?: ingredientsText - fun getImageIngredientsUrl(languageCode: String?): String? { - val result = getSelectedImage(languageCode, ProductImageField.INGREDIENTS, ImageSize.DISPLAY) - return if (!result.isNullOrBlank()) result else imageIngredientsUrl - } - - fun getImagePackagingUrl(languageCode: String?): String? { - val result = getSelectedImage(languageCode, ProductImageField.PACKAGING, ImageSize.DISPLAY) - return if (!result.isNullOrBlank()) result else imagePackagingUrl - } fun getImageNutritionUrl(languageCode: String?): String? { - val result = getSelectedImage(languageCode, ProductImageField.NUTRITION, ImageSize.DISPLAY) + val result = getSelectedImageUrl(languageCode, ProductImageField.NUTRITION, ImageSize.DISPLAY) return if (!result.isNullOrBlank()) result else imageNutritionUrl } @@ -344,7 +335,7 @@ class Product : SearchProduct() { } fun getImageFrontUrl(languageCode: String?): String? { - val image = getSelectedImage(languageCode, ProductImageField.FRONT, ImageSize.DISPLAY) + val image = getSelectedImageUrl(languageCode, ProductImageField.FRONT, ImageSize.DISPLAY) return if (image.isNullOrBlank()) image else imageFrontUrl } @@ -358,10 +349,6 @@ class Product : SearchProduct() { fun getProductName(languageCode: String) = getFieldForLanguage(ApiFields.Keys.PRODUCT_NAME, languageCode) ?: productName - fun getImageUrl(languageCode: String?): String? { - val url = getSelectedImage(languageCode, ProductImageField.FRONT, ImageSize.DISPLAY) - return if (!url.isNullOrBlank()) url else imageUrl - } fun getNutritionGradeTag(): String? { if (!additionalProperties.containsKey(ApiFields.Keys.NUTRITION_GRADE)) return null diff --git a/app/src/main/java/openfoodfacts/github/scrachx/openfood/models/SearchProduct.kt b/app/src/main/java/openfoodfacts/github/scrachx/openfood/models/SearchProduct.kt index 9eb329de60db..aef20dccab8f 100644 --- a/app/src/main/java/openfoodfacts/github/scrachx/openfood/models/SearchProduct.kt +++ b/app/src/main/java/openfoodfacts/github/scrachx/openfood/models/SearchProduct.kt @@ -62,7 +62,7 @@ open class SearchProduct : Serializable { * @return The imageSmallUrl */ @JsonProperty(ApiFields.Keys.IMAGE_SMALL_URL) - protected val imageSmallUrl: String? = null + val imageSmallUrl: String? = null /** * A string containing the brands, comma separated @@ -93,30 +93,41 @@ open class SearchProduct : Serializable { additionalProperties[name] = value } - fun getSelectedImage(languageCode: String?, type: ProductImageField, size: ImageSize): String? { - var images = additionalProperties[ApiFields.Keys.SELECTED_IMAGES] as Map>? - if (images != null) { - images = images[type.toString()] as Map>? - if (images != null) { - val imagesByLocale = images[size.name.lowercase(Locale.ROOT)] as Map? - if (imagesByLocale != null) { - val url = imagesByLocale[languageCode] - if (!url.isNullOrBlank()) { - return url - } - } + @JsonProperty(ApiFields.Keys.SELECTED_IMAGES) + val selectedImages: Map>>? = null +} + +fun SearchProduct.getPackagingImageUrl(languageCode: String?): String? = + getSelectedImageUrl(languageCode, ProductImageField.PACKAGING, ImageSize.DISPLAY) + ?.ifBlank { imagePackagingUrl } + +fun SearchProduct.getIngredientsImageUrl(languageCode: String?): String? = + getSelectedImageUrl(languageCode, ProductImageField.INGREDIENTS, ImageSize.DISPLAY) + ?.ifBlank { imageIngredientsUrl } + +fun SearchProduct.getSmallFrontImageUrl(languageCode: String?) = + getSelectedImageUrl(languageCode, ProductImageField.FRONT, ImageSize.SMALL) + ?.ifBlank { imageSmallUrl } + +fun SearchProduct.getFrontImageUrl(languageCode: String?): String? = + getSelectedImageUrl(languageCode, ProductImageField.FRONT, ImageSize.DISPLAY) + ?.ifBlank { imageUrl } + +fun SearchProduct.getSelectedImageUrl(languageCode: String?, type: ProductImageField, size: ImageSize): String? { + val sizeLowercase = size.name.lowercase(Locale.ROOT) + + val url = selectedImages?.get(type.toString()) + ?.get(sizeLowercase) + ?.get(languageCode) + ?.ifBlank { + when (type) { + ProductImageField.FRONT -> imageUrl + ProductImageField.INGREDIENTS -> imageIngredientsUrl + ProductImageField.NUTRITION -> imageNutritionUrl + ProductImageField.PACKAGING -> imagePackagingUrl + ProductImageField.OTHER -> null } } - return when (type) { - ProductImageField.FRONT -> imageUrl - ProductImageField.INGREDIENTS -> imageIngredientsUrl - ProductImageField.NUTRITION -> imageNutritionUrl - ProductImageField.PACKAGING -> imagePackagingUrl - ProductImageField.OTHER -> null - } - } - fun getImageSmallUrl(languageCode: String?) = - getSelectedImage(languageCode, ProductImageField.FRONT, ImageSize.SMALL) - ?.ifBlank { null } ?: imageSmallUrl + return url } \ No newline at end of file diff --git a/app/src/main/java/openfoodfacts/github/scrachx/openfood/repositories/HistoryRepository.kt b/app/src/main/java/openfoodfacts/github/scrachx/openfood/repositories/HistoryRepository.kt index c3c8c3c38d29..d6140cb569e9 100644 --- a/app/src/main/java/openfoodfacts/github/scrachx/openfood/repositories/HistoryRepository.kt +++ b/app/src/main/java/openfoodfacts/github/scrachx/openfood/repositories/HistoryRepository.kt @@ -11,6 +11,7 @@ import logcat.logcat import openfoodfacts.github.scrachx.openfood.images.IMAGE_URL import openfoodfacts.github.scrachx.openfood.models.DaoSession import openfoodfacts.github.scrachx.openfood.models.HistoryProduct +import openfoodfacts.github.scrachx.openfood.models.getSmallFrontImageUrl import openfoodfacts.github.scrachx.openfood.network.ApiFields import openfoodfacts.github.scrachx.openfood.utils.CoroutineDispatchers import openfoodfacts.github.scrachx.openfood.utils.LocaleManager @@ -92,7 +93,7 @@ class HistoryRepository @Inject constructor( val hp = HistoryProduct( product.productName, product.brands, - product.getImageSmallUrl(localeManager.getLanguage()), + product.getSmallFrontImageUrl(localeManager.getLanguage()), product.code, product.quantity, product.nutritionGradeFr, diff --git a/app/src/main/java/openfoodfacts/github/scrachx/openfood/repositories/ProductRepository.kt b/app/src/main/java/openfoodfacts/github/scrachx/openfood/repositories/ProductRepository.kt index bbac5bf2906c..b8d883fc4c78 100644 --- a/app/src/main/java/openfoodfacts/github/scrachx/openfood/repositories/ProductRepository.kt +++ b/app/src/main/java/openfoodfacts/github/scrachx/openfood/repositories/ProductRepository.kt @@ -26,6 +26,7 @@ import openfoodfacts.github.scrachx.openfood.models.Search import openfoodfacts.github.scrachx.openfood.models.entities.OfflineSavedProduct import openfoodfacts.github.scrachx.openfood.models.entities.ToUploadProduct import openfoodfacts.github.scrachx.openfood.models.entities.ToUploadProductDao +import openfoodfacts.github.scrachx.openfood.models.getSmallFrontImageUrl import openfoodfacts.github.scrachx.openfood.network.ApiFields import openfoodfacts.github.scrachx.openfood.network.ApiFields.Keys import openfoodfacts.github.scrachx.openfood.network.ApiFields.getAllFields @@ -406,7 +407,7 @@ class ProductRepository @Inject constructor( val hp = HistoryProduct( product.productName, product.brands, - product.getImageSmallUrl(language), + product.getSmallFrontImageUrl(language), product.barcode.raw, product.quantity, product.nutritionGradeFr,