Commit 05fff444 authored by yinjiacheng's avatar yinjiacheng

fix 认证流程中选择营业执照和身份证操作在部分机型ANR

parent e067a1a7
......@@ -3,6 +3,7 @@ package com.yidian.shenghuoquan.newscontent.ui.auth
import android.Manifest
import android.app.Activity
import android.content.Intent
import android.graphics.Bitmap
import android.net.Uri
import android.os.Build
import android.os.Bundle
......@@ -35,7 +36,9 @@ import com.yidian.shenghuoquan.newscontent.utils.FileUtil
import com.yidian.shenghuoquan.newscontent.utils.InputFilterUtil
import com.yidian.shenghuoquan.newscontent.widget.LifeAccountAuthBusinessInfoEditView
import com.yidian.utils.ToastUtil
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import java.io.File
/**
......@@ -193,24 +196,27 @@ class LifeAccountBusinessLicenseAuthFragmentV2 :
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (resultCode == Activity.RESULT_OK) {
lifecycleScope.launch(Dispatchers.Main) {
val uri = if (requestCode == Constant.REQUEST_CODE_OPEN_ALBUM) data?.data else photoUri
val bitmap =
BitmapUtil.generateBitmapFromUri(activity, uri, viewBinding.ivBusinessLicense)
var bitmap: Bitmap?
withContext(Dispatchers.IO) {
bitmap = BitmapUtil.generateBitmapFromUri(activity, uri, viewBinding.ivBusinessLicense)
}
viewBinding.ivBusinessLicense.setImageBitmap(bitmap)
FileUtil.generateFileFromUri(
activity, uri,
commonPath + Constant.FILE_PATH_BUSINESS_LICENSE
)
// 删除从相机拍摄的照片
if (requestCode == Constant.REQUEST_CODE_OPEN_CAMERA) File(commonPath + Constant.FILE_PATH_BUSINESS_LICENSE_CAMERA).delete()
// 显示清除按钮
viewBinding.ivClear.visibility = View.VISIBLE
// 上传区域不可点击
viewBinding.clBusinessLicenseUpload.isEnabled = false
withContext(Dispatchers.IO) {
FileUtil.generateFileFromUri(activity, uri, commonPath + Constant.FILE_PATH_BUSINESS_LICENSE)
}
// 删除从相机拍摄的照片
if (requestCode == Constant.REQUEST_CODE_OPEN_CAMERA) File(commonPath + Constant.FILE_PATH_BUSINESS_LICENSE_CAMERA).delete()
// 执行营业执照OCR
startBusinessLicenseOCR()
}
}
}
/**
* 执行营业执照OCR
......
......@@ -3,6 +3,7 @@ package com.yidian.shenghuoquan.newscontent.ui.auth
import android.Manifest
import android.app.Activity
import android.content.Intent
import android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.os.Bundle
import android.provider.MediaStore
......@@ -284,69 +285,59 @@ class LifeAccountIDCardAuthFragmentV2 : BaseFragment<FragmentLifeAccountIdCardAu
if (resultCode == Activity.RESULT_OK) {
when (requestCode) {
Constant.REQUEST_CODE_OPEN_ALBUM -> {
lifecycleScope.launch(Dispatchers.Main) {
var bitmap: Bitmap?
if (curFace == Constant.ID_CARD_PORTRAIT_FACE) {
val bitmap = BitmapUtil.generateBitmapFromUri(
activity,
data?.data,
viewBinding.ivIdCardPortraitFace
)
withContext(Dispatchers.IO) {
bitmap = BitmapUtil.generateBitmapFromUri(activity, data?.data, viewBinding.ivIdCardPortraitFace)
}
viewBinding.ivIdCardPortraitFace.addImage(bitmap)
FileUtil.generateFileFromUri(
activity,
data?.data,
cachePath + Constant.FILE_PATH_ID_CARD_PORTRAIT_FACE
)
withContext(Dispatchers.IO) {
FileUtil.generateFileFromUri(activity, data?.data, cachePath + Constant.FILE_PATH_ID_CARD_PORTRAIT_FACE)
}
startIDCardVerify(Constant.ID_CARD_PORTRAIT_FACE)
} else {
val bitmap = BitmapUtil.generateBitmapFromUri(
activity,
data?.data,
viewBinding.ivIdCardNationalEmblemFace
)
withContext(Dispatchers.IO) {
bitmap = BitmapUtil.generateBitmapFromUri(activity, data?.data, viewBinding.ivIdCardNationalEmblemFace)
}
viewBinding.ivIdCardNationalEmblemFace.addImage(bitmap)
FileUtil.generateFileFromUri(
activity,
data?.data,
cachePath + Constant.FILE_PATH_ID_CARD_NATIONAL_EMBLEM_FACE
)
withContext(Dispatchers.IO) {
FileUtil.generateFileFromUri(activity, data?.data, cachePath + Constant.FILE_PATH_ID_CARD_NATIONAL_EMBLEM_FACE)
}
startIDCardVerify(Constant.ID_CARD_NATIONAL_EMBLEM_FACE)
}
}
}
Constant.REQUEST_CODE_ID_CARD_CAPTURE -> {
lifecycleScope.launch(Dispatchers.Main) {
var bitmap: Bitmap?
val bytes = data?.getByteArrayExtra(EXTRA_NAME_ID_CARD_IMAGE)
if (curFace == Constant.ID_CARD_PORTRAIT_FACE) {
val bitmap = bytes?.size?.let {
BitmapFactory.decodeByteArray(
bytes, 0,
it
)
withContext(Dispatchers.IO) {
bitmap = bytes?.size?.let { BitmapFactory.decodeByteArray(bytes, 0, it) }
}
viewBinding.ivIdCardPortraitFace.addImage(bitmap)
BitmapUtil.generateFileFromBitmap(
bitmap,
100,
cachePath + Constant.FILE_PATH_ID_CARD_PORTRAIT_FACE
)
withContext(Dispatchers.IO) {
BitmapUtil.generateFileFromBitmap(bitmap, 100, cachePath + Constant.FILE_PATH_ID_CARD_PORTRAIT_FACE)
}
startIDCardVerify(Constant.ID_CARD_PORTRAIT_FACE)
} else {
val bitmap = bytes?.size?.let {
BitmapFactory.decodeByteArray(
bytes, 0,
it
)
withContext(Dispatchers.IO) {
bitmap = bytes?.size?.let {
BitmapFactory.decodeByteArray(bytes, 0, it)
}
}
viewBinding.ivIdCardNationalEmblemFace.addImage(bitmap)
BitmapUtil.generateFileFromBitmap(
bitmap,
100,
cachePath + Constant.FILE_PATH_ID_CARD_NATIONAL_EMBLEM_FACE
)
withContext(Dispatchers.IO) {
BitmapUtil.generateFileFromBitmap(bitmap, 100, cachePath + Constant.FILE_PATH_ID_CARD_NATIONAL_EMBLEM_FACE)
}
startIDCardVerify(Constant.ID_CARD_NATIONAL_EMBLEM_FACE)
}
}
}
}
}
}
/**
* 执行身份证识别
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment