Commit 05fff444 authored by yinjiacheng's avatar yinjiacheng

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

parent e067a1a7
...@@ -3,6 +3,7 @@ package com.yidian.shenghuoquan.newscontent.ui.auth ...@@ -3,6 +3,7 @@ package com.yidian.shenghuoquan.newscontent.ui.auth
import android.Manifest import android.Manifest
import android.app.Activity import android.app.Activity
import android.content.Intent import android.content.Intent
import android.graphics.Bitmap
import android.net.Uri import android.net.Uri
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
...@@ -35,7 +36,9 @@ import com.yidian.shenghuoquan.newscontent.utils.FileUtil ...@@ -35,7 +36,9 @@ import com.yidian.shenghuoquan.newscontent.utils.FileUtil
import com.yidian.shenghuoquan.newscontent.utils.InputFilterUtil import com.yidian.shenghuoquan.newscontent.utils.InputFilterUtil
import com.yidian.shenghuoquan.newscontent.widget.LifeAccountAuthBusinessInfoEditView import com.yidian.shenghuoquan.newscontent.widget.LifeAccountAuthBusinessInfoEditView
import com.yidian.utils.ToastUtil import com.yidian.utils.ToastUtil
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import java.io.File import java.io.File
/** /**
...@@ -193,22 +196,25 @@ class LifeAccountBusinessLicenseAuthFragmentV2 : ...@@ -193,22 +196,25 @@ class LifeAccountBusinessLicenseAuthFragmentV2 :
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data) super.onActivityResult(requestCode, resultCode, data)
if (resultCode == Activity.RESULT_OK) { if (resultCode == Activity.RESULT_OK) {
val uri = if (requestCode == Constant.REQUEST_CODE_OPEN_ALBUM) data?.data else photoUri lifecycleScope.launch(Dispatchers.Main) {
val bitmap = val uri = if (requestCode == Constant.REQUEST_CODE_OPEN_ALBUM) data?.data else photoUri
BitmapUtil.generateBitmapFromUri(activity, uri, viewBinding.ivBusinessLicense) var bitmap: Bitmap?
viewBinding.ivBusinessLicense.setImageBitmap(bitmap) withContext(Dispatchers.IO) {
FileUtil.generateFileFromUri( bitmap = BitmapUtil.generateBitmapFromUri(activity, uri, viewBinding.ivBusinessLicense)
activity, uri, }
commonPath + Constant.FILE_PATH_BUSINESS_LICENSE viewBinding.ivBusinessLicense.setImageBitmap(bitmap)
) // 显示清除按钮
// 删除从相机拍摄的照片 viewBinding.ivClear.visibility = View.VISIBLE
if (requestCode == Constant.REQUEST_CODE_OPEN_CAMERA) File(commonPath + Constant.FILE_PATH_BUSINESS_LICENSE_CAMERA).delete() // 上传区域不可点击
// 显示清除按钮 viewBinding.clBusinessLicenseUpload.isEnabled = false
viewBinding.ivClear.visibility = View.VISIBLE withContext(Dispatchers.IO) {
// 上传区域不可点击 FileUtil.generateFileFromUri(activity, uri, commonPath + Constant.FILE_PATH_BUSINESS_LICENSE)
viewBinding.clBusinessLicenseUpload.isEnabled = false }
// 执行营业执照OCR // 删除从相机拍摄的照片
startBusinessLicenseOCR() if (requestCode == Constant.REQUEST_CODE_OPEN_CAMERA) File(commonPath + Constant.FILE_PATH_BUSINESS_LICENSE_CAMERA).delete()
// 执行营业执照OCR
startBusinessLicenseOCR()
}
} }
} }
......
...@@ -3,6 +3,7 @@ package com.yidian.shenghuoquan.newscontent.ui.auth ...@@ -3,6 +3,7 @@ package com.yidian.shenghuoquan.newscontent.ui.auth
import android.Manifest import android.Manifest
import android.app.Activity import android.app.Activity
import android.content.Intent import android.content.Intent
import android.graphics.Bitmap
import android.graphics.BitmapFactory import android.graphics.BitmapFactory
import android.os.Bundle import android.os.Bundle
import android.provider.MediaStore import android.provider.MediaStore
...@@ -284,64 +285,54 @@ class LifeAccountIDCardAuthFragmentV2 : BaseFragment<FragmentLifeAccountIdCardAu ...@@ -284,64 +285,54 @@ class LifeAccountIDCardAuthFragmentV2 : BaseFragment<FragmentLifeAccountIdCardAu
if (resultCode == Activity.RESULT_OK) { if (resultCode == Activity.RESULT_OK) {
when (requestCode) { when (requestCode) {
Constant.REQUEST_CODE_OPEN_ALBUM -> { Constant.REQUEST_CODE_OPEN_ALBUM -> {
if (curFace == Constant.ID_CARD_PORTRAIT_FACE) { lifecycleScope.launch(Dispatchers.Main) {
val bitmap = BitmapUtil.generateBitmapFromUri( var bitmap: Bitmap?
activity, if (curFace == Constant.ID_CARD_PORTRAIT_FACE) {
data?.data, withContext(Dispatchers.IO) {
viewBinding.ivIdCardPortraitFace bitmap = BitmapUtil.generateBitmapFromUri(activity, data?.data, viewBinding.ivIdCardPortraitFace)
) }
viewBinding.ivIdCardPortraitFace.addImage(bitmap) viewBinding.ivIdCardPortraitFace.addImage(bitmap)
FileUtil.generateFileFromUri( withContext(Dispatchers.IO) {
activity, FileUtil.generateFileFromUri(activity, data?.data, cachePath + Constant.FILE_PATH_ID_CARD_PORTRAIT_FACE)
data?.data, }
cachePath + Constant.FILE_PATH_ID_CARD_PORTRAIT_FACE startIDCardVerify(Constant.ID_CARD_PORTRAIT_FACE)
) } else {
startIDCardVerify(Constant.ID_CARD_PORTRAIT_FACE) withContext(Dispatchers.IO) {
} else { bitmap = BitmapUtil.generateBitmapFromUri(activity, data?.data, viewBinding.ivIdCardNationalEmblemFace)
val bitmap = BitmapUtil.generateBitmapFromUri( }
activity, viewBinding.ivIdCardNationalEmblemFace.addImage(bitmap)
data?.data, withContext(Dispatchers.IO) {
viewBinding.ivIdCardNationalEmblemFace FileUtil.generateFileFromUri(activity, data?.data, cachePath + Constant.FILE_PATH_ID_CARD_NATIONAL_EMBLEM_FACE)
) }
viewBinding.ivIdCardNationalEmblemFace.addImage(bitmap) startIDCardVerify(Constant.ID_CARD_NATIONAL_EMBLEM_FACE)
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 -> { Constant.REQUEST_CODE_ID_CARD_CAPTURE -> {
val bytes = data?.getByteArrayExtra(EXTRA_NAME_ID_CARD_IMAGE) lifecycleScope.launch(Dispatchers.Main) {
if (curFace == Constant.ID_CARD_PORTRAIT_FACE) { var bitmap: Bitmap?
val bitmap = bytes?.size?.let { val bytes = data?.getByteArrayExtra(EXTRA_NAME_ID_CARD_IMAGE)
BitmapFactory.decodeByteArray( if (curFace == Constant.ID_CARD_PORTRAIT_FACE) {
bytes, 0, withContext(Dispatchers.IO) {
it bitmap = bytes?.size?.let { BitmapFactory.decodeByteArray(bytes, 0, it) }
) }
} viewBinding.ivIdCardPortraitFace.addImage(bitmap)
viewBinding.ivIdCardPortraitFace.addImage(bitmap) withContext(Dispatchers.IO) {
BitmapUtil.generateFileFromBitmap( BitmapUtil.generateFileFromBitmap(bitmap, 100, cachePath + Constant.FILE_PATH_ID_CARD_PORTRAIT_FACE)
bitmap, }
100, startIDCardVerify(Constant.ID_CARD_PORTRAIT_FACE)
cachePath + Constant.FILE_PATH_ID_CARD_PORTRAIT_FACE } else {
) withContext(Dispatchers.IO) {
startIDCardVerify(Constant.ID_CARD_PORTRAIT_FACE) bitmap = bytes?.size?.let {
} else { BitmapFactory.decodeByteArray(bytes, 0, it)
val bitmap = bytes?.size?.let { }
BitmapFactory.decodeByteArray( }
bytes, 0, viewBinding.ivIdCardNationalEmblemFace.addImage(bitmap)
it withContext(Dispatchers.IO) {
) BitmapUtil.generateFileFromBitmap(bitmap, 100, cachePath + Constant.FILE_PATH_ID_CARD_NATIONAL_EMBLEM_FACE)
}
startIDCardVerify(Constant.ID_CARD_NATIONAL_EMBLEM_FACE)
} }
viewBinding.ivIdCardNationalEmblemFace.addImage(bitmap)
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