Commit b24d7c81 authored by yinjiacheng's avatar yinjiacheng

update camera权限获取后置

parent e99b8049
package com.yidian.shenghuoquan.newscontent.ui package com.yidian.shenghuoquan.newscontent.ui
import android.Manifest
import android.os.Bundle import android.os.Bundle
import com.orhanobut.hawk.Hawk import com.orhanobut.hawk.Hawk
import com.tbruyelle.rxpermissions3.RxPermissions
import com.yidian.common.HawkConfig import com.yidian.common.HawkConfig
import com.yidian.common.XRouterPathConstants import com.yidian.common.XRouterPathConstants
import com.yidian.common.XRouterPathConstants.Companion.FLASH import com.yidian.common.XRouterPathConstants.Companion.FLASH
...@@ -16,7 +14,6 @@ import com.yidian.shenghuoquan.newscontent.http.httpbean.LifeAccountItemBean ...@@ -16,7 +14,6 @@ import com.yidian.shenghuoquan.newscontent.http.httpbean.LifeAccountItemBean
import com.yidian.shenghuoquan.newscontent.ui.auth.LifeAccountIdentityActivity import com.yidian.shenghuoquan.newscontent.ui.auth.LifeAccountIdentityActivity
import com.yidian.shenghuoquan.newscontent.ui.center.MerchantCenterActivity import com.yidian.shenghuoquan.newscontent.ui.center.MerchantCenterActivity
import com.yidian.shenghuoquan.newscontent.utils.StorageUtil import com.yidian.shenghuoquan.newscontent.utils.StorageUtil
import com.yidian.utils.ToastUtil
import com.yidian.xpage.XPageManager import com.yidian.xpage.XPageManager
class FlashActivity : BaseActivity<ActivityFlashBinding>(), IGetLifeAccountListCallback { class FlashActivity : BaseActivity<ActivityFlashBinding>(), IGetLifeAccountListCallback {
...@@ -35,7 +32,7 @@ class FlashActivity : BaseActivity<ActivityFlashBinding>(), IGetLifeAccountListC ...@@ -35,7 +32,7 @@ class FlashActivity : BaseActivity<ActivityFlashBinding>(), IGetLifeAccountListC
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
getPermissions() launcher()
} }
private fun launcher() { private fun launcher() {
...@@ -55,20 +52,6 @@ class FlashActivity : BaseActivity<ActivityFlashBinding>(), IGetLifeAccountListC ...@@ -55,20 +52,6 @@ class FlashActivity : BaseActivity<ActivityFlashBinding>(), IGetLifeAccountListC
} }
} }
private fun getPermissions() {
RxPermissions(this).request(
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.CAMERA
)
.subscribe {
if (it) {
launcher()
} else {
ToastUtil.showToast(this, "请在设置里同意相关权限")
}
}
}
override fun getLifeAccountListSuccess(result: ArrayList<LifeAccountItemBean.Response>?) { override fun getLifeAccountListSuccess(result: ArrayList<LifeAccountItemBean.Response>?) {
when (result?.size) { when (result?.size) {
0 -> { 0 -> {
......
...@@ -125,6 +125,7 @@ object LifeAccountAuthDataManager { ...@@ -125,6 +125,7 @@ object LifeAccountAuthDataManager {
* 填入企业认证回显数据 * 填入企业认证回显数据
* 身份证两面完整度此时一定是0 * 身份证两面完整度此时一定是0
*/ */
// TODO: 6/17/21 增加营业执照法人字段
fun generateMerchantAuthData(data: AuthMerchantCheckBean.Response) { fun generateMerchantAuthData(data: AuthMerchantCheckBean.Response) {
merchantAuthData.authRecordId = data.enterprise_auth_record_id merchantAuthData.authRecordId = data.enterprise_auth_record_id
merchantAuthData.registrationName = data.name merchantAuthData.registrationName = data.name
......
package com.yidian.shenghuoquan.newscontent.ui.auth package com.yidian.shenghuoquan.newscontent.ui.auth
import android.Manifest
import android.app.Activity import android.app.Activity
import android.content.Intent import android.content.Intent
import android.net.Uri import android.net.Uri
...@@ -14,6 +15,7 @@ import android.view.ViewGroup ...@@ -14,6 +15,7 @@ import android.view.ViewGroup
import androidx.core.content.FileProvider import androidx.core.content.FileProvider
import androidx.core.view.isVisible import androidx.core.view.isVisible
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.tbruyelle.rxpermissions3.RxPermissions
import com.yidian.common.base.BaseFragment import com.yidian.common.base.BaseFragment
import com.yidian.common.constant.GlobalConstants import com.yidian.common.constant.GlobalConstants
import com.yidian.shenghuoquan.newscontent.R import com.yidian.shenghuoquan.newscontent.R
...@@ -31,6 +33,7 @@ import com.yidian.shenghuoquan.newscontent.utils.FileUtil ...@@ -31,6 +33,7 @@ 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.utils.KS3Core import com.yidian.shenghuoquan.newscontent.utils.KS3Core
import com.yidian.shenghuoquan.newscontent.widget.LifeAccountAuthBusinessInfoEditView import com.yidian.shenghuoquan.newscontent.widget.LifeAccountAuthBusinessInfoEditView
import com.yidian.utils.ToastUtil
import java.io.File import java.io.File
/** /**
...@@ -152,6 +155,9 @@ class LifeAccountBusinessLicenseAuthFragment : ...@@ -152,6 +155,9 @@ class LifeAccountBusinessLicenseAuthFragment :
} else { } else {
Uri.fromFile(file) Uri.fromFile(file)
} }
// 判断camera权限
RxPermissions(this).request(Manifest.permission.CAMERA).subscribe {
if (it) {
startActivityForResult( startActivityForResult(
Intent(MediaStore.ACTION_IMAGE_CAPTURE).putExtra( Intent(MediaStore.ACTION_IMAGE_CAPTURE).putExtra(
MediaStore.EXTRA_OUTPUT, MediaStore.EXTRA_OUTPUT,
...@@ -159,6 +165,10 @@ class LifeAccountBusinessLicenseAuthFragment : ...@@ -159,6 +165,10 @@ class LifeAccountBusinessLicenseAuthFragment :
), ),
Constant.REQUEST_CODE_OPEN_CAMERA Constant.REQUEST_CODE_OPEN_CAMERA
) )
} else {
ToastUtil.showToast(activity, "请在设置里同意相关权限")
}
}
} }
Constant.ITEM_OPEN_ALBUM -> { Constant.ITEM_OPEN_ALBUM -> {
// 打开系统相册 // 打开系统相册
......
package com.yidian.shenghuoquan.newscontent.ui.auth package com.yidian.shenghuoquan.newscontent.ui.auth
import android.Manifest
import android.app.Activity import android.app.Activity
import android.content.Intent import android.content.Intent
import android.graphics.BitmapFactory import android.graphics.BitmapFactory
...@@ -18,6 +19,7 @@ import com.megvii.licensemanager.Manager ...@@ -18,6 +19,7 @@ import com.megvii.licensemanager.Manager
import com.megvii.meglive_sdk.listener.DetectCallback import com.megvii.meglive_sdk.listener.DetectCallback
import com.megvii.meglive_sdk.listener.PreCallback import com.megvii.meglive_sdk.listener.PreCallback
import com.megvii.meglive_sdk.manager.MegLiveManager import com.megvii.meglive_sdk.manager.MegLiveManager
import com.tbruyelle.rxpermissions3.RxPermissions
import com.yidian.common.base.BaseFragment import com.yidian.common.base.BaseFragment
import com.yidian.common.http.HttpResult import com.yidian.common.http.HttpResult
import com.yidian.shenghuoquan.newscontent.R import com.yidian.shenghuoquan.newscontent.R
...@@ -217,7 +219,7 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth ...@@ -217,7 +219,7 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
viewBinding.ivIdCardNationalEmblemFace.addImage(data.back_id_card_url) viewBinding.ivIdCardNationalEmblemFace.addImage(data.back_id_card_url)
viewBinding.evRealName.fillEditContent(data.full_name) viewBinding.evRealName.fillEditContent(data.full_name)
viewBinding.evIdCardNumber.fillEditContent(data.id_card) viewBinding.evIdCardNumber.fillEditContent(data.id_card)
if (data.live_identity_status == Constant.ALIVE_DETECT_SUCCESS) viewBinding.avFaceAuth.showFaceAuthSuccess() if (data.live_identity_status == Constant.ALIVE_DETECT_SUCCESS) viewBinding.avFaceAuth.showFaceAuthResult(true)
// 如果人脸验证已通过 则直接锁定输入状态 // 如果人脸验证已通过 则直接锁定输入状态
if (data.live_identity_status == Constant.ALIVE_DETECT_SUCCESS) lockPersonalAuthInfo() if (data.live_identity_status == Constant.ALIVE_DETECT_SUCCESS) lockPersonalAuthInfo()
// 检查下一步条件 // 检查下一步条件
...@@ -234,7 +236,7 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth ...@@ -234,7 +236,7 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
viewBinding.evIdCardNumber.fillEditContent(data.legal_id_card) viewBinding.evIdCardNumber.fillEditContent(data.legal_id_card)
if (authType == Constant.TYPE_AUTH_INDIVIDUAL_BUSINESS) { if (authType == Constant.TYPE_AUTH_INDIVIDUAL_BUSINESS) {
// 个体工商户 // 个体工商户
if (data.live_identity_status == Constant.ALIVE_DETECT_SUCCESS) viewBinding.avFaceAuth.showFaceAuthSuccess() if (data.live_identity_status == Constant.ALIVE_DETECT_SUCCESS) viewBinding.avFaceAuth.showFaceAuthResult(true)
// 如果人脸验证已通过 则直接锁定输入状态 // 如果人脸验证已通过 则直接锁定输入状态
if (data.live_identity_status == Constant.ALIVE_DETECT_SUCCESS) lockEnterpriseAuthInfo() if (data.live_identity_status == Constant.ALIVE_DETECT_SUCCESS) lockEnterpriseAuthInfo()
} else { } else {
...@@ -308,6 +310,9 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth ...@@ -308,6 +310,9 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
override fun onItemClick(view: View, position: Int, data: BottomSelectBean) { override fun onItemClick(view: View, position: Int, data: BottomSelectBean) {
when (data.item) { when (data.item) {
Constant.ITEM_TAKE_PHOTO -> { Constant.ITEM_TAKE_PHOTO -> {
// 判断camera权限
RxPermissions(this).request(Manifest.permission.CAMERA).subscribe {
if (it) {
// 调用FaceID进行身份证采集 // 调用FaceID进行身份证采集
if (checkFaceIDLicense()) { if (checkFaceIDLicense()) {
startActivityForResult( startActivityForResult(
...@@ -317,6 +322,10 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth ...@@ -317,6 +322,10 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
} else { } else {
ToastUtil.showToast(activity, "获取授权失败,请稍后重试") ToastUtil.showToast(activity, "获取授权失败,请稍后重试")
} }
} else {
ToastUtil.showToast(activity, "请在设置里同意相关权限")
}
}
} }
Constant.ITEM_OPEN_ALBUM -> { Constant.ITEM_OPEN_ALBUM -> {
// 打开系统相册 // 打开系统相册
...@@ -763,6 +772,9 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth ...@@ -763,6 +772,9 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
ToastUtil.showToast(activity, "请补全信息后重试") ToastUtil.showToast(activity, "请补全信息后重试")
return return
} }
// 判断camera权限
RxPermissions(this).request(Manifest.permission.CAMERA).subscribe {
if (it) {
when (authType) { when (authType) {
Constant.TYPE_AUTH_PERSONAL -> { Constant.TYPE_AUTH_PERSONAL -> {
ApiService.authPersonalCheck( ApiService.authPersonalCheck(
...@@ -777,6 +789,10 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth ...@@ -777,6 +789,10 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
) )
} }
} }
} else {
ToastUtil.showToast(activity, "请在设置里同意相关权限")
}
}
} }
override fun authIndividualBusinessIdentityCommitSuccess() { override fun authIndividualBusinessIdentityCommitSuccess() {
......
...@@ -40,29 +40,17 @@ class LifeAccountFaceAuthView @JvmOverloads constructor( ...@@ -40,29 +40,17 @@ class LifeAccountFaceAuthView @JvmOverloads constructor(
fun showFaceAuthResult(result: Boolean) { fun showFaceAuthResult(result: Boolean) {
if (result) { if (result) {
viewBinding.tvFaceAuthResult.show() viewBinding.tvFaceAuthResult.show()
viewBinding.tvFaceAuthResult.text = resources.getText(R.string.face_auth_success)
viewBinding.tvFaceAuthResult.setTextColor(Color.parseColor("#FF6BB81F"))
viewBinding.tvFaceAuthStart.hide() viewBinding.tvFaceAuthStart.hide()
viewBinding.tvFaceAuthErrorTips.hide() viewBinding.tvFaceAuthErrorTips.hide()
} else { } else {
viewBinding.tvFaceAuthResult.text = resources.getText(R.string.face_auth_fail) viewBinding.tvFaceAuthResult.hide()
viewBinding.tvFaceAuthResult.setTextColor(Color.parseColor("#FFFF3A3A")) viewBinding.tvFaceAuthStart.text = resources.getText(R.string.face_auth_fail)
viewBinding.tvFaceAuthErrorTips.visibility = View.VISIBLE viewBinding.tvFaceAuthStart.setTextColor(Color.parseColor("#FFFF3A3A"))
viewBinding.tvFaceAuthErrorTips.show()
viewBinding.tvFaceAuthErrorTips.text = resources.getText(R.string.face_auth_error_tips) viewBinding.tvFaceAuthErrorTips.text = resources.getText(R.string.face_auth_error_tips)
} }
} }
/**
* 人脸验证结果成功UI
*/
fun showFaceAuthSuccess() {
viewBinding.tvFaceAuthResult.show()
viewBinding.tvFaceAuthResult.text = resources.getText(R.string.face_auth_success)
viewBinding.tvFaceAuthResult.setTextColor(Color.parseColor("#FF6BB81F"))
viewBinding.tvFaceAuthStart.hide()
viewBinding.tvFaceAuthErrorTips.hide()
}
override fun onClick(v: View?) { override fun onClick(v: View?) {
// 去验证 // 去验证
if (v?.id == R.id.tv_face_auth_start) { if (v?.id == R.id.tv_face_auth_start) {
......
...@@ -23,8 +23,8 @@ ...@@ -23,8 +23,8 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="2dp" android:layout_marginEnd="2dp"
android:includeFontPadding="false" android:includeFontPadding="false"
android:text="@string/face_auth_fail" android:text="@string/face_auth_success"
android:textColor="#FF1852F1" android:textColor="#FF6BB81F"
android:textSize="15sp" android:textSize="15sp"
android:visibility="gone" android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
...@@ -36,10 +36,9 @@ ...@@ -36,10 +36,9 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp2" android:layout_marginEnd="@dimen/dp2"
android:drawableEnd="@mipmap/icon_next" android:drawableEnd="@mipmap/icon_next"
android:text="去验证" android:text="@string/start_face_auth"
android:textColor="#FF1852F1" android:textColor="#FF1852F1"
android:textSize="15sp" android:textSize="15sp"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="@id/tv_face_auth" app:layout_constraintBottom_toBottomOf="@id/tv_face_auth"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/tv_face_auth" /> app:layout_constraintTop_toTopOf="@id/tv_face_auth" />
......
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