From 40757e6e654b846ff3a0c4d259fc61cc08f28dbf Mon Sep 17 00:00:00 2001 From: VaiTon Date: Fri, 30 Apr 2021 16:52:20 +0200 Subject: [PATCH] fix: minors --- .../edit/ProductEditIngredientsFragment.kt | 16 +++++++++------- .../edit/ProductEditNutritionFactsFragment.kt | 14 ++++++++------ .../product/edit/ProductEditOverviewFragment.kt | 9 +++++---- .../openfood/features/shared/BaseFragment.kt | 8 ++++++-- .../openfood/repositories/ProductRepository.kt | 16 ++++++++++++---- 5 files changed, 40 insertions(+), 23 deletions(-) diff --git a/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/edit/ProductEditIngredientsFragment.kt b/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/edit/ProductEditIngredientsFragment.kt index 7007855f2b23..4f5f6604b5f4 100644 --- a/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/edit/ProductEditIngredientsFragment.kt +++ b/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/edit/ProductEditIngredientsFragment.kt @@ -23,6 +23,7 @@ import android.view.View import android.view.ViewGroup import android.widget.ArrayAdapter import android.widget.Toast +import androidx.core.net.toFile import androidx.core.widget.doAfterTextChanged import com.hootsuite.nachos.terminator.ChipTerminatorHandler import com.hootsuite.nachos.validator.ChipifyingNachoValidator @@ -30,6 +31,7 @@ import com.squareup.picasso.Callback import com.squareup.picasso.Picasso import dagger.hilt.android.AndroidEntryPoint import io.reactivex.android.schedulers.AndroidSchedulers +import io.reactivex.rxkotlin.addTo import openfoodfacts.github.scrachx.openfood.R import openfoodfacts.github.scrachx.openfood.analytics.AnalyticsEvent import openfoodfacts.github.scrachx.openfood.analytics.AnalyticsView @@ -46,7 +48,7 @@ import openfoodfacts.github.scrachx.openfood.models.entities.allergen.AllergenNa import openfoodfacts.github.scrachx.openfood.models.entities.allergen.AllergenNameDao import openfoodfacts.github.scrachx.openfood.network.ApiFields import openfoodfacts.github.scrachx.openfood.network.ApiFields.Keys.lcIngredientsKey -import openfoodfacts.github.scrachx.openfood.network.services.ProductsAPI +import openfoodfacts.github.scrachx.openfood.network.OpenFoodAPIClient import openfoodfacts.github.scrachx.openfood.utils.* import openfoodfacts.github.scrachx.openfood.utils.FileDownloader.download import org.greenrobot.greendao.async.AsyncOperationListener @@ -71,7 +73,7 @@ class ProductEditIngredientsFragment : ProductEditFragment() { lateinit var picasso: Picasso @Inject - lateinit var productsApi: ProductsAPI + lateinit var client: OpenFoodAPIClient @Inject lateinit var matomoAnalytics: MatomoAnalytics @@ -326,13 +328,13 @@ class ProductEditIngredientsFragment : ProductEditFragment() { private fun addIngredientsImage() { when { imagePath == null -> editIngredientsImage() - photoFile != null -> cropRotateImage(photoFile, getString(R.string.ingredients_picture)) + photoFile != null -> cropRotateImage(photoFile!!, getString(R.string.ingredients_picture)) else -> { - download(requireContext(), imagePath!!, productsApi) + download(requireContext(), imagePath!!, client) .observeOn(AndroidSchedulers.mainThread()) - .subscribe { file -> - photoFile = file - cropRotateImage(photoFile, getString(R.string.ingredients_picture)) + .subscribe { uri -> + photoFile = uri.toFile() + cropRotateImage(uri, getString(R.string.ingredients_picture)) }.addTo(disp) } } diff --git a/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/edit/ProductEditNutritionFactsFragment.kt b/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/edit/ProductEditNutritionFactsFragment.kt index c321465f2f5f..4534e947b379 100644 --- a/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/edit/ProductEditNutritionFactsFragment.kt +++ b/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/edit/ProductEditNutritionFactsFragment.kt @@ -29,6 +29,7 @@ import android.view.ViewGroup import android.view.inputmethod.EditorInfo import android.widget.* import android.widget.AdapterView.OnItemSelectedListener +import androidx.core.net.toFile import androidx.core.widget.doAfterTextChanged import com.afollestad.materialdialogs.MaterialDialog import com.google.android.material.textfield.TextInputLayout @@ -36,6 +37,7 @@ import com.squareup.picasso.Callback import com.squareup.picasso.Picasso import dagger.hilt.android.AndroidEntryPoint import io.reactivex.android.schedulers.AndroidSchedulers +import io.reactivex.rxkotlin.addTo import openfoodfacts.github.scrachx.openfood.R import openfoodfacts.github.scrachx.openfood.analytics.AnalyticsView import openfoodfacts.github.scrachx.openfood.analytics.MatomoAnalytics @@ -54,7 +56,7 @@ import openfoodfacts.github.scrachx.openfood.models.entities.OfflineSavedProduct import openfoodfacts.github.scrachx.openfood.network.ApiFields import openfoodfacts.github.scrachx.openfood.network.ApiFields.Defaults.NUTRITION_DATA_PER_100G import openfoodfacts.github.scrachx.openfood.network.ApiFields.Defaults.NUTRITION_DATA_PER_SERVING -import openfoodfacts.github.scrachx.openfood.network.services.ProductsAPI +import openfoodfacts.github.scrachx.openfood.network.OpenFoodAPIClient import openfoodfacts.github.scrachx.openfood.utils.* import openfoodfacts.github.scrachx.openfood.utils.FileDownloader.download import openfoodfacts.github.scrachx.openfood.utils.UnitUtils.UNIT_IU @@ -76,7 +78,7 @@ class ProductEditNutritionFactsFragment : ProductEditFragment() { lateinit var picasso: Picasso @Inject - lateinit var productsApi: ProductsAPI + lateinit var client: OpenFoodAPIClient @Inject lateinit var matomoAnalytics: MatomoAnalytics @@ -414,13 +416,13 @@ class ProductEditNutritionFactsFragment : ProductEditFragment() { return } if (photoFile != null) { - cropRotateImage(photoFile, getString(R.string.nutrition_facts_picture)) + cropRotateImage(photoFile!!, getString(R.string.nutrition_facts_picture)) } else { - download(requireContext(), path, productsApi) + download(requireContext(), path, client) .observeOn(AndroidSchedulers.mainThread()) .subscribe { - photoFile = it - cropRotateImage(photoFile, getString(R.string.nutrition_facts_picture)) + photoFile = it.toFile() + cropRotateImage(it, getString(R.string.nutrition_facts_picture)) }.addTo(disp) } } diff --git a/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/edit/ProductEditOverviewFragment.kt b/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/edit/ProductEditOverviewFragment.kt index 3d5b15f35ac1..5ca0b6727994 100644 --- a/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/edit/ProductEditOverviewFragment.kt +++ b/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/edit/ProductEditOverviewFragment.kt @@ -25,6 +25,7 @@ import android.view.View import android.view.ViewGroup import android.widget.ArrayAdapter import android.widget.Toast +import androidx.core.net.toFile import com.afollestad.materialdialogs.MaterialDialog import com.google.android.material.snackbar.BaseTransientBottomBar import com.google.android.material.snackbar.Snackbar @@ -657,12 +658,12 @@ class ProductEditOverviewFragment : ProductEditFragment() { if (photoFile == null) { download(requireContext(), frontImageUrl!!, client) .observeOn(AndroidSchedulers.mainThread()) - .subscribe { file: File? -> - photoFile = file - cropRotateImage(photoFile, getString(R.string.set_img_front)) + .subscribe { uri -> + photoFile = uri.toFile() + cropRotateImage(uri, getString(R.string.set_img_front)) }.addTo(disp) } else { - cropRotateImage(photoFile, getString(R.string.set_img_front)) + cropRotateImage(photoFile!!, getString(R.string.set_img_front)) } } } diff --git a/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/shared/BaseFragment.kt b/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/shared/BaseFragment.kt index 9aea31dd650c..de12a1b3948f 100644 --- a/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/shared/BaseFragment.kt +++ b/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/shared/BaseFragment.kt @@ -25,6 +25,7 @@ import android.provider.Settings import android.view.View import androidx.activity.result.contract.ActivityResultContracts import androidx.core.content.ContextCompat +import androidx.core.net.toUri import androidx.fragment.app.Fragment import androidx.swiperefreshlayout.widget.SwipeRefreshLayout import com.afollestad.materialdialogs.MaterialDialog @@ -107,8 +108,11 @@ abstract class BaseFragment : Fragment(), SwipeRefreshLayout.OnRefreshListener, protected open fun doOnPhotosPermissionGranted() = Unit - protected fun cropRotateImage(image: File?, title: String?) { - val uri = Uri.fromFile(image) + protected fun cropRotateImage(image: File, title: String?) { + return cropRotateImage(image.toUri(), title) + } + + protected fun cropRotateImage(uri: Uri, title: String?) { CropImage.activity(uri) .setCropMenuCropButtonIcon(R.drawable.ic_check_white_24dp) .setMinCropResultSize(MIN_CROP_RESULT_WIDTH_ACCEPTED_BY_OFF, MIN_CROP_RESULT_HEIGHT_ACCEPTED_BY_OFF) 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 80df2d0fb883..f6a88d3445ba 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 @@ -85,8 +85,12 @@ class ProductRepository @Inject constructor( * * @return The list of Tags. */ - fun reloadTagsFromServer() = - taxonomiesManager.getTaxonomyData(Taxonomy.TAGS, true, daoSession.tagDao, this) + fun reloadTagsFromServer() = taxonomiesManager.getTaxonomyData( + Taxonomy.TAGS, + true, + daoSession.tagDao, + this + ) fun loadTags(lastModifiedDate: Long) = analysisDataApi.getTags() .map { it.tags } @@ -95,8 +99,12 @@ class ProductRepository @Inject constructor( updateLastDownloadDateInSettings(Taxonomy.TAGS, lastModifiedDate) } - fun reloadInvalidBarcodesFromServer() = - taxonomiesManager.getTaxonomyData(Taxonomy.INVALID_BARCODES, true, daoSession.invalidBarcodeDao, this) + fun reloadInvalidBarcodesFromServer() = taxonomiesManager.getTaxonomyData( + Taxonomy.INVALID_BARCODES, + true, + daoSession.invalidBarcodeDao, + this + ) fun loadInvalidBarcodes(lastModifiedDate: Long) = analysisDataApi.getInvalidBarcodes() .map { strings -> strings.map { InvalidBarcode(it) } }