From 3f4d9bbe9bf4db1360bd703d30fbfc1419c3a00e Mon Sep 17 00:00:00 2001 From: Edouard Marquez Date: Fri, 25 Mar 2022 11:20:57 +0100 Subject: [PATCH] Environment tab: if the camera permission is missing, once granted, the camera app should be launched (#4609) --- .../product/view/environment/EnvironmentProductFragment.kt | 6 ++++-- .../github/scrachx/openfood/features/shared/BaseFragment.kt | 5 ++--- app/src/main/res/layout/fragment_environment_product.xml | 1 - 3 files changed, 6 insertions(+), 6 deletions(-) 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 aa284baf02be..e6825ef91e91 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 @@ -80,7 +80,7 @@ class EnvironmentProductFragment : BaseFragment() { super.onViewCreated(view, savedInstanceState) val langCode = localeManager.getLanguage() productState = requireProductState() - binding.imageViewPackaging.setOnClickListener { openFullScreen() } + binding.imageViewPackaging.setOnClickListener { openFullScreenImage() } // If Battery Level is low and the user has checked the Disable Image in Preferences , then set isLowBatteryMode to true if (requireContext().isDisableImageLoad() && requireContext().isBatteryLevelLow()) { @@ -172,7 +172,7 @@ class EnvironmentProductFragment : BaseFragment() { refreshTagsPrompt() } - private fun openFullScreen() { + private fun openFullScreenImage() { val imageUrl = mUrlImage val product = productState.product if (imageUrl != null && product != null) { @@ -194,6 +194,8 @@ class EnvironmentProductFragment : BaseFragment() { private fun newPackagingImage() = doChooseOrTakePhotos() + override fun doOnPhotosPermissionGranted() = doChooseOrTakePhotos() + private fun loadPackagingPhoto(photoFile: File) { // Create a new instance of ProductImage so we can load to server val image = ProductImage(productState.product!!.code, ProductImageField.PACKAGING, photoFile, localeManager.getLanguage()) 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 2fbd5bd09f03..45aa5d3d2ca0 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 @@ -93,10 +93,9 @@ abstract class BaseFragment : Fragment(), SwipeRefreshLayout.OnRefreshListener, protected fun doChooseOrTakePhotos() { if (canTakePhotos()) { EasyImage.openCamera(this, 0) - return + } else { + cameraPermissionRequestLauncher.launch(Manifest.permission.CAMERA) } - // Ask for permissions - cameraPermissionRequestLauncher.launch(Manifest.permission.CAMERA) } protected open fun doOnPhotosPermissionGranted() = Unit diff --git a/app/src/main/res/layout/fragment_environment_product.xml b/app/src/main/res/layout/fragment_environment_product.xml index 93bda02b7086..db7ef84479aa 100644 --- a/app/src/main/res/layout/fragment_environment_product.xml +++ b/app/src/main/res/layout/fragment_environment_product.xml @@ -22,7 +22,6 @@ android:orientation="vertical" android:paddingBottom="@dimen/nav_bar_height"> -