From 32e9f0dc9f2d739711f328c97b378b9af29a71dd Mon Sep 17 00:00:00 2001 From: VaiTon Date: Sat, 29 May 2021 10:40:24 +0200 Subject: [PATCH] fix: do not try to refresh if activity is not ProductViewActivity Fixes OPENFOODFACTS-ANDROID-3GP --- .../product/edit/ProductEditActivity.kt | 1 + .../product/edit/ProductEditPhotosFragment.kt | 36 ++++++++++--------- .../view/summary/SummaryProductFragment.kt | 2 +- 3 files changed, 22 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/edit/ProductEditActivity.kt b/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/edit/ProductEditActivity.kt index 8009397454fa..3a0ba355070c 100644 --- a/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/edit/ProductEditActivity.kt +++ b/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/edit/ProductEditActivity.kt @@ -226,6 +226,7 @@ class ProductEditActivity : BaseActivity() { if (productState == null && offlineSavedProduct == null && mEditProduct == null) { Toast.makeText(this, R.string.error_adding_product, Toast.LENGTH_SHORT).show() finish() + return } setupViewPager(binding.viewpager) } diff --git a/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/edit/ProductEditPhotosFragment.kt b/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/edit/ProductEditPhotosFragment.kt index f76cf62feae7..53d8da89e4f8 100644 --- a/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/edit/ProductEditPhotosFragment.kt +++ b/app/src/main/java/openfoodfacts/github/scrachx/openfood/features/product/edit/ProductEditPhotosFragment.kt @@ -63,6 +63,9 @@ class ProductEditPhotosFragment : ProductEditFragment() { @Inject lateinit var localeManager: LocaleManager + @Inject + lateinit var picasso: Picasso + private val photoReceiverHandler by lazy { PhotoReceiverHandler(sharedPreferences) { newPhotoFile -> photoFile = newPhotoFile @@ -93,24 +96,26 @@ class ProductEditPhotosFragment : ProductEditFragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) + binding.btnAddOtherImage.setOnClickListener { addOtherImage() } binding.btnAdd.setOnClickListener { next() } + val bundle = arguments - if (bundle != null) { - val product = bundle.getSerializable("product") as Product? - val offlineSavedProduct = bundle.getSerializable("edit_offline_product") as OfflineSavedProduct? - val editionMode = bundle.getBoolean(ProductEditActivity.KEY_IS_EDITING) - if (product != null) { - code = product.code - } - if (editionMode && product != null) { - binding.btnAdd.setText(R.string.save_edits) - } else if (offlineSavedProduct != null) { - code = offlineSavedProduct.barcode - } - } else { + if (bundle == null) { Toast.makeText(activity, R.string.error_adding_product_photos, Toast.LENGTH_SHORT).show() - requireActivity().finish() + error("Cannot start fragment without arguments.") + } + + val product = bundle.getSerializable("product") as Product? + val offlineSavedProduct = bundle.getSerializable("edit_offline_product") as OfflineSavedProduct? + val editing = bundle.getBoolean(ProductEditActivity.KEY_IS_EDITING) + if (product != null) { + code = product.code + } + if (editing && product != null) { + binding.btnAdd.setText(R.string.save_edits) + } else if (offlineSavedProduct != null) { + code = offlineSavedProduct.barcode } } @@ -162,8 +167,7 @@ class ProductEditPhotosFragment : ProductEditFragment() { scaleType = ImageView.ScaleType.FIT_CENTER layoutParams = lp } - Picasso.get() - .load(photoFile!!) + picasso.load(photoFile!!) .resize(requireContext().dpsToPixel(100), requireContext().dpsToPixel(100)) .centerInside() .into(imageView) 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 7730155072c2..aad3c07015d9 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 @@ -836,7 +836,7 @@ class SummaryProductFragment : BaseFragment(), ISummaryProductPresenter.View { } private val editProductLauncher = registerForActivityResult(ProductEditActivity.EditProductContract()) - { isOk -> if (isOk) (activity as ProductViewActivity).onRefresh() } + { isOk -> if (isOk) (activity as? ProductViewActivity)?.onRefresh() } private fun editProduct() = editProductLauncher.launch(product)