Skip to content

Commit

Permalink
fix: temporary fix for URI blocking issue.
Browse files Browse the repository at this point in the history
Temporarily closes #4088
  • Loading branch information
VaiTon committed Jul 16, 2021
1 parent 1606aae commit 5e3322f
Showing 1 changed file with 35 additions and 24 deletions.
@@ -1,14 +1,15 @@
package openfoodfacts.github.scrachx.openfood.utils

import android.app.Activity
import android.app.Activity.RESULT_OK
import android.content.Intent
import android.content.SharedPreferences
import android.util.Log
import androidx.core.net.toFile
import androidx.core.net.toUri
import androidx.fragment.app.Fragment
import com.canhub.cropper.CropImage
import openfoodfacts.github.scrachx.openfood.R
import openfoodfacts.github.scrachx.openfood.app.OFFApplication
import openfoodfacts.github.scrachx.openfood.utils.Utils.getOutputPicUri
import pl.aprilapps.easyphotopicker.DefaultCallback
import pl.aprilapps.easyphotopicker.EasyImage
Expand All @@ -19,14 +20,14 @@ import java.io.File
* A class for handling photo receiver
*/
class PhotoReceiverHandler(
private val sharedPreferences: SharedPreferences,
private val photoReceiver: (File) -> Unit,
private val sharedPreferences: SharedPreferences,
private val photoReceiver: (File) -> Unit,
) {
fun onActivityResult(fragment: Fragment, requestCode: Int, resultCode: Int, data: Intent?) =
onActivityResult(null, fragment, requestCode, resultCode, data)
onActivityResult(null, fragment, requestCode, resultCode, data)

fun onActivityResult(activity: Activity, requestCode: Int, resultCode: Int, data: Intent?) =
onActivityResult(activity, null, requestCode, resultCode, data)
onActivityResult(activity, null, requestCode, resultCode, data)

private fun onActivityResult(activity: Activity?, fragment: Fragment?, requestCode: Int, resultCode: Int, data: Intent?) {
if (onCropResult(requestCode, resultCode, data)) return
Expand All @@ -42,23 +43,23 @@ class PhotoReceiverHandler(
if (cropActionEnabled) {
if (activity == null) {
CropImage.activity(imageFiles[0].toUri())
.setCropMenuCropButtonIcon(R.drawable.ic_check_white_24dp)
.setAllowFlipping(false)
.setAllowRotation(true)
.setAllowCounterRotation(true)
.setAutoZoomEnabled(false)
.setInitialCropWindowPaddingRatio(0f)
.setOutputUri(getOutputPicUri(mainContext!!))
.start(mainContext, fragment!!)
.setCropMenuCropButtonIcon(R.drawable.ic_check_white_24dp)
.setAllowFlipping(false)
.setAllowRotation(true)
.setAllowCounterRotation(true)
.setAutoZoomEnabled(false)
.setInitialCropWindowPaddingRatio(0f)
.setOutputUri(getOutputPicUri(mainContext!!))
.start(mainContext, fragment!!)
} else {
CropImage.activity(imageFiles[0].toUri())
.setCropMenuCropButtonIcon(R.drawable.ic_check_white_24dp)
.setAllowFlipping(false)
.setAllowRotation(true)
.setAllowCounterRotation(true)
.setAutoZoomEnabled(false)
.setInitialCropWindowPaddingRatio(0f)
.start(activity)
.setCropMenuCropButtonIcon(R.drawable.ic_check_white_24dp)
.setAllowFlipping(false)
.setAllowRotation(true)
.setAllowCounterRotation(true)
.setAutoZoomEnabled(false)
.setInitialCropWindowPaddingRatio(0f)
.start(activity)
}
} else {
imageFiles.forEach { photoReceiver(it) }
Expand All @@ -82,10 +83,20 @@ class PhotoReceiverHandler(
if (requestCode != CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) return false

val result = CropImage.getActivityResult(data)!!
if (resultCode == Activity.RESULT_OK && result.uriContent != null) {
photoReceiver(result.uriContent!!.toFile())
} else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) {
Log.w(LOG_TAG, "Can't process photo", result.error)
when (resultCode) {
RESULT_OK -> {
if (result.uriContent != null) {

// FIXME: Find a method to not use context
photoReceiver(File(result.getUriFilePath(OFFApplication._instance)))

} else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) {
Log.w(LOG_TAG, "Can't process photo", result.error)
}
}
CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE -> {
Log.w(LOG_TAG, "Can't process photo", result.error)
}
}
return true
}
Expand Down

0 comments on commit 5e3322f

Please sign in to comment.