Commit 92c77812 authored by shiyl's avatar shiyl

依赖库远程改本地

parent abd0b4fb
...@@ -58,6 +58,8 @@ android { ...@@ -58,6 +58,8 @@ android {
dependencies { dependencies {
// 注意高德地图jar引入需要其他组件可以使用,故而api // 注意高德地图jar引入需要其他组件可以使用,故而api
api fileTree(dir: 'libs', include: ['*.jar', '*.aar']) api fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
// api(name: 'yac-core-0.0.6', ext: 'aar')
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
// kotlin实现MVVM框架之使用DataBinding之unresolved reference: BR解决办法 // kotlin实现MVVM框架之使用DataBinding之unresolved reference: BR解决办法
kapt "com.android.databinding:compiler:4.0.1" kapt "com.android.databinding:compiler:4.0.1"
...@@ -66,7 +68,7 @@ dependencies { ...@@ -66,7 +68,7 @@ dependencies {
compileOnly rootProject.ext.dependencies.privateImplementation compileOnly rootProject.ext.dependencies.privateImplementation
testImplementation rootProject.ext.dependencies.testImplementation testImplementation rootProject.ext.dependencies.testImplementation
androidTestImplementation rootProject.ext.dependencies.androidTestImplementation androidTestImplementation rootProject.ext.dependencies.androidTestImplementation
api('com.yidian.android:CommonComponent:0.0.88') { // api('com.yidian.android:CommonComponent:0.0.88') {
exclude(group: 'com.yidian.android', module: 'NetworkImageLib') // exclude(group: 'com.yidian.android', module: 'NetworkImageLib')
} // }
} }
\ No newline at end of file
package com.yidian.shenghuoquan.bmanagercenter.ui.auth //package com.yidian.shenghuoquan.bmanagercenter.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.BitmapFactory //import android.graphics.BitmapFactory
import android.os.Bundle //import android.os.Bundle
import android.provider.MediaStore //import android.provider.MediaStore
import android.text.InputFilter //import android.text.InputFilter
import android.util.Log //import android.util.Log
import android.view.LayoutInflater //import android.view.LayoutInflater
import android.view.View //import android.view.View
import android.view.ViewGroup //import android.view.ViewGroup
import androidx.core.content.ContextCompat //import androidx.core.content.ContextCompat
import androidx.core.view.isVisible //import androidx.core.view.isVisible
import com.megvii.demo.activity.IDCardDetectActivity //import com.megvii.demo.activity.IDCardDetectActivity
import com.megvii.demo.utils.Configuration //import com.megvii.demo.utils.Configuration
import com.megvii.idcardquality.IDCardQualityLicenseManager //import com.megvii.idcardquality.IDCardQualityLicenseManager
import com.megvii.licensemanager.Manager //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.tbruyelle.rxpermissions3.RxPermissions
import com.yidian.bcommon.base.BaseFragment //import com.yidian.bcommon.base.BaseFragment
import com.yidian.bcommon.http.HttpResult //import com.yidian.bcommon.http.HttpResult
import com.yidian.shenghuoquan.bmanagercenter.R //import com.yidian.shenghuoquan.bmanagercenter.R
import com.yidian.shenghuoquan.bmanagercenter.adapter.BottomSelectAdapter //import com.yidian.shenghuoquan.bmanagercenter.adapter.BottomSelectAdapter
import com.yidian.shenghuoquan.bmanagercenter.bean.BottomSelectBean //import com.yidian.shenghuoquan.bmanagercenter.bean.BottomSelectBean
import com.yidian.bcommon.bean.HintOptionBean //import com.yidian.bcommon.bean.HintOptionBean
import com.yidian.shenghuoquan.bmanagercenter.constant.Constant //import com.yidian.shenghuoquan.bmanagercenter.constant.Constant
import com.yidian.shenghuoquan.bmanagercenter.databinding.FragmentLifeAccountIdCardAuthBinding //import com.yidian.shenghuoquan.bmanagercenter.databinding.FragmentLifeAccountIdCardAuthBinding
import com.yidian.shenghuoquan.bmanagercenter.http.ApiService //import com.yidian.shenghuoquan.bmanagercenter.http.ApiService
import com.yidian.shenghuoquan.bmanagercenter.http.httpbean.* //import com.yidian.shenghuoquan.bmanagercenter.http.httpbean.*
import com.yidian.shenghuoquan.bmanagercenter.ui.dialog.BottomSelectDialog //import com.yidian.shenghuoquan.bmanagercenter.ui.dialog.BottomSelectDialog
import com.yidian.bcommon.widget.dialog.HintDialog //import com.yidian.bcommon.widget.dialog.HintDialog
import com.yidian.shenghuoquan.bmanagercenter.http.callback.* //import com.yidian.shenghuoquan.bmanagercenter.http.callback.*
import com.yidian.shenghuoquan.bmanagercenter.utils.BitmapUtil //import com.yidian.shenghuoquan.bmanagercenter.utils.BitmapUtil
import com.yidian.shenghuoquan.bmanagercenter.utils.FileUtil //import com.yidian.shenghuoquan.bmanagercenter.utils.FileUtil
import com.yidian.bcommon.utils.InputFilterUtil //import com.yidian.bcommon.utils.InputFilterUtil
import com.yidian.shenghuoquan.bmanagercenter.utils.KS3Core //import com.yidian.shenghuoquan.bmanagercenter.utils.KS3Core
import com.yidian.shenghuoquan.bmanagercenter.widget.LifeAccountAuthIdentityInfoEditView //import com.yidian.shenghuoquan.bmanagercenter.widget.LifeAccountAuthIdentityInfoEditView
import com.yidian.shenghuoquan.bmanagercenter.widget.LifeAccountAuthImageView //import com.yidian.shenghuoquan.bmanagercenter.widget.LifeAccountAuthImageView
import com.yidian.shenghuoquan.bmanagercenter.widget.LifeAccountFaceAuthView //import com.yidian.shenghuoquan.bmanagercenter.widget.LifeAccountFaceAuthView
import com.yidian.shenghuoquan.bmanagercenter.widget.PrivacyAgreementView //import com.yidian.shenghuoquan.bmanagercenter.widget.PrivacyAgreementView
import com.yidian.utils.ToastUtil //import com.yidian.utils.ToastUtil
import java.io.File //import java.io.File
//
/** ///**
* author: yinjiacheng // * author: yinjiacheng
* date: 5/26/21 7:49 PM // * date: 5/26/21 7:49 PM
* description: 生活号身份证认证 // * description: 生活号身份证认证
*/ // */
class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuthBinding>(), //class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuthBinding>(),
View.OnClickListener, BottomSelectAdapter.OnItemClickListener<BottomSelectBean>, AuthPersonalGetTokenCallback, // View.OnClickListener, BottomSelectAdapter.OnItemClickListener<BottomSelectBean>, AuthPersonalGetTokenCallback,
IdentifyIdOcrVerifyCallback, PreCallback, DetectCallback, KS3Core.OnKS3TaskListener, IAuthPersonalCheckCallback, // IdentifyIdOcrVerifyCallback, PreCallback, DetectCallback, KS3Core.OnKS3TaskListener, IAuthPersonalCheckCallback,
IAuthLiveIdentityCallback, LifeAccountAuthImageView.OnLifeAccountAuthImageViewCallback, // IAuthLiveIdentityCallback, LifeAccountAuthImageView.OnLifeAccountAuthImageViewCallback,
LifeAccountAuthIdentityInfoEditView.OnLifeAccountAuthIdentityInfoEditViewCallback, // LifeAccountAuthIdentityInfoEditView.OnLifeAccountAuthIdentityInfoEditViewCallback,
IAuthIndividualBusinessIdentityCommitCallback, IAuthEnterpriseLiveIdentityCallback, // IAuthIndividualBusinessIdentityCommitCallback, IAuthEnterpriseLiveIdentityCallback,
LifeAccountFaceAuthView.OnLifeAccountFaceAuthCallback, PrivacyAgreementView.OnPrivacyAgreementCallback { // LifeAccountFaceAuthView.OnLifeAccountFaceAuthCallback, PrivacyAgreementView.OnPrivacyAgreementCallback {
//
companion object { // companion object {
// 身份证采集页面回传数据 // // 身份证采集页面回传数据
private const val EXTRA_NAME_ID_CARD_IMAGE = "idcardimg_bitmap" // private const val EXTRA_NAME_ID_CARD_IMAGE = "idcardimg_bitmap"
//
// 活体检测模型文件名称 // // 活体检测模型文件名称
private const val FILE_NAME_ALIVE_DETECT_MODEL = "faceidmodel.bin" // private const val FILE_NAME_ALIVE_DETECT_MODEL = "faceidmodel.bin"
//
//活体检测语种 详见文档 // //活体检测语种 详见文档
private const val ALIVE_DETECT_LANGUAGE = "zh" // private const val ALIVE_DETECT_LANGUAGE = "zh"
//
//活体检测请求host 详见文档 // //活体检测请求host 详见文档
private const val ALIVE_DETECT_HOST = "https://api.megvii.com" // private const val ALIVE_DETECT_HOST = "https://api.megvii.com"
//
// 认证数据 // // 认证数据
const val EXTRA_AUTH_DATA = "authData" // const val EXTRA_AUTH_DATA = "authData"
} // }
//
/** // /**
* 标识用户当前上传的是身份证人像面或身份证国徽面 帮助onActivityResult区分 // * 标识用户当前上传的是身份证人像面或身份证国徽面 帮助onActivityResult区分
*/ // */
private var curFace: Int = -1 // private var curFace: Int = -1
//
/** // /**
* sdcard/Android/data/package/cache // * sdcard/Android/data/package/cache
*/ // */
private val cachePath by lazy { activity?.externalCacheDir?.absolutePath } // private val cachePath by lazy { activity?.externalCacheDir?.absolutePath }
//
/*** // /***
* sdcard/Android/data/package/file/face_id // * sdcard/Android/data/package/file/face_id
*/ // */
private val fileFaceIDPath by lazy { activity?.getExternalFilesDir("face_id")?.absolutePath } // private val fileFaceIDPath by lazy { activity?.getExternalFilesDir("face_id")?.absolutePath }
//
/** // /**
* 旷视活体检测 // * 旷视活体检测
*/ // */
private val megLiveManager by lazy { MegLiveManager.getInstance() } // private val megLiveManager by lazy { MegLiveManager.getInstance() }
//
/** // /**
* 当前认证类型 // * 当前认证类型
*/ // */
private var authType: Int? = null // private var authType: Int? = null
//
override fun createViewBinding( // override fun createViewBinding(
inflater: LayoutInflater, // inflater: LayoutInflater,
container: ViewGroup? // container: ViewGroup?
): FragmentLifeAccountIdCardAuthBinding { // ): FragmentLifeAccountIdCardAuthBinding {
return FragmentLifeAccountIdCardAuthBinding.inflate(layoutInflater, container, false) // return FragmentLifeAccountIdCardAuthBinding.inflate(layoutInflater, container, false)
} // }
//
override fun onHiddenChanged(hidden: Boolean) { // override fun onHiddenChanged(hidden: Boolean) {
super.onHiddenChanged(hidden) // super.onHiddenChanged(hidden)
if (!hidden) { // if (!hidden) {
// fragment显示 // // fragment显示
initView() // initView()
} // }
} // }
//
override fun init(savedInstanceState: Bundle?) { // override fun init(savedInstanceState: Bundle?) {
super.init(savedInstanceState) // super.init(savedInstanceState)
initView() // initView()
initListener() // initListener()
initData() // initData()
initFaceID() // initFaceID()
} // }
//
private fun initView() { // private fun initView() {
authType = arguments?.getInt(Constant.TYPE_AUTH, Constant.TYPE_AUTH_PERSONAL) // authType = arguments?.getInt(Constant.TYPE_AUTH, Constant.TYPE_AUTH_PERSONAL)
?: Constant.TYPE_AUTH_PERSONAL // ?: Constant.TYPE_AUTH_PERSONAL
when (authType) { // when (authType) {
Constant.TYPE_AUTH_PERSONAL -> { // Constant.TYPE_AUTH_PERSONAL -> {
viewBinding.evRealName.setTitleContent(resources.getString(R.string.real_name)) // viewBinding.evRealName.setTitleContent(resources.getString(R.string.real_name))
} // }
Constant.TYPE_AUTH_INDIVIDUAL_BUSINESS -> { // Constant.TYPE_AUTH_INDIVIDUAL_BUSINESS -> {
viewBinding.evRealName.setTitleContent(resources.getString(R.string.individual_business_manager_name)) // viewBinding.evRealName.setTitleContent(resources.getString(R.string.individual_business_manager_name))
} // }
Constant.TYPE_AUTH_COMMON_ENTERPRISE -> { // Constant.TYPE_AUTH_COMMON_ENTERPRISE -> {
viewBinding.evRealName.setTitleContent(resources.getString(R.string.enterprise_legal_name)) // viewBinding.evRealName.setTitleContent(resources.getString(R.string.enterprise_legal_name))
} // }
} // }
viewBinding.evMobile.isVisible = authType == Constant.TYPE_AUTH_COMMON_ENTERPRISE // viewBinding.evMobile.isVisible = authType == Constant.TYPE_AUTH_COMMON_ENTERPRISE
viewBinding.avFaceAuth.isVisible = // viewBinding.avFaceAuth.isVisible =
(authType == Constant.TYPE_AUTH_PERSONAL) or (authType == Constant.TYPE_AUTH_INDIVIDUAL_BUSINESS) // (authType == Constant.TYPE_AUTH_PERSONAL) or (authType == Constant.TYPE_AUTH_INDIVIDUAL_BUSINESS)
// 输入过滤 // // 输入过滤
viewBinding.evRealName.setInputFilters(InputFilterUtil.getRealNameFilter(), InputFilter.LengthFilter(40)) // viewBinding.evRealName.setInputFilters(InputFilterUtil.getRealNameFilter(), InputFilter.LengthFilter(40))
// 身份证号码输入限制18位字符,数字+大小写x 小写x自动转大写X // // 身份证号码输入限制18位字符,数字+大小写x 小写x自动转大写X
viewBinding.evIdCardNumber.setInputFilters(InputFilterUtil.getIDCardNumberFilter(), InputFilter.LengthFilter(18), InputFilter.AllCaps()) // viewBinding.evIdCardNumber.setInputFilters(InputFilterUtil.getIDCardNumberFilter(), InputFilter.LengthFilter(18), InputFilter.AllCaps())
viewBinding.evMobile.setInputFilters(InputFilterUtil.getPhoneNumberFilter(), InputFilter.LengthFilter(11)) // viewBinding.evMobile.setInputFilters(InputFilterUtil.getPhoneNumberFilter(), InputFilter.LengthFilter(11))
} // }
//
private fun initListener() { // private fun initListener() {
viewBinding.ivIdCardPortraitFace.setOnClickListener(this) // viewBinding.ivIdCardPortraitFace.setOnClickListener(this)
viewBinding.ivIdCardNationalEmblemFace.setOnClickListener(this) // viewBinding.ivIdCardNationalEmblemFace.setOnClickListener(this)
viewBinding.ivIdCardPortraitFace.setOnLifeAccountAuthImageViewCallback(this) // viewBinding.ivIdCardPortraitFace.setOnLifeAccountAuthImageViewCallback(this)
viewBinding.ivIdCardNationalEmblemFace.setOnLifeAccountAuthImageViewCallback(this) // viewBinding.ivIdCardNationalEmblemFace.setOnLifeAccountAuthImageViewCallback(this)
viewBinding.evRealName.setOnLifeAccountAuthIdentityInfoEditViewCallback(this) // viewBinding.evRealName.setOnLifeAccountAuthIdentityInfoEditViewCallback(this)
viewBinding.evIdCardNumber.setOnLifeAccountAuthIdentityInfoEditViewCallback(this) // viewBinding.evIdCardNumber.setOnLifeAccountAuthIdentityInfoEditViewCallback(this)
viewBinding.evMobile.setOnLifeAccountAuthIdentityInfoEditViewCallback(this) // viewBinding.evMobile.setOnLifeAccountAuthIdentityInfoEditViewCallback(this)
viewBinding.avFaceAuth.setOnLifeAccountFaceAuthCallback(this) // viewBinding.avFaceAuth.setOnLifeAccountFaceAuthCallback(this)
viewBinding.avPrivacyAgreement.setOnPrivacyAgreementCallback(this) // viewBinding.avPrivacyAgreement.setOnPrivacyAgreementCallback(this)
} // }
//
private fun initData() { // private fun initData() {
// 还原认证数据 // // 还原认证数据
val authData = arguments?.getSerializable(EXTRA_AUTH_DATA) ?: return // val authData = arguments?.getSerializable(EXTRA_AUTH_DATA) ?: return
if (authType == Constant.TYPE_AUTH_PERSONAL) { // if (authType == Constant.TYPE_AUTH_PERSONAL) {
fillPersonalAuthInfo(authData as AuthAuthenticationBean.Response) // fillPersonalAuthInfo(authData as AuthAuthenticationBean.Response)
} else { // } else {
fillEnterpriseAuthInfo(authData as AuthMerchantCheckBean.Response) // fillEnterpriseAuthInfo(authData as AuthMerchantCheckBean.Response)
} // }
} // }
//
/** // /**
* 初始化旷视FaceID // * 初始化旷视FaceID
*/ // */
private fun initFaceID() { // private fun initFaceID() {
// 身份证采集初始化 // // 身份证采集初始化
// 竖屏采集 // // 竖屏采集
Configuration.setIsVertical(activity, true) // Configuration.setIsVertical(activity, true)
// 检查license是否有效 // // 检查license是否有效
checkFaceIDLicense() // checkFaceIDLicense()
// 若活体检测模型文件不存在则从assets中拷贝 // // 若活体检测模型文件不存在则从assets中拷贝
if (!File(fileFaceIDPath + File.separator + FILE_NAME_ALIVE_DETECT_MODEL).exists()) { // if (!File(fileFaceIDPath + File.separator + FILE_NAME_ALIVE_DETECT_MODEL).exists()) {
FileUtil.copyFileFromAssets( // FileUtil.copyFileFromAssets(
activity, // activity,
FILE_NAME_ALIVE_DETECT_MODEL, // FILE_NAME_ALIVE_DETECT_MODEL,
fileFaceIDPath + File.separator + FILE_NAME_ALIVE_DETECT_MODEL // fileFaceIDPath + File.separator + FILE_NAME_ALIVE_DETECT_MODEL
) // )
} // }
} // }
//
/** // /**
* 检查旷视FaceID授权有效 // * 检查旷视FaceID授权有效
*/ // */
private fun checkFaceIDLicense(): Boolean { // private fun checkFaceIDLicense(): Boolean {
val licenseManager = IDCardQualityLicenseManager(activity) // val licenseManager = IDCardQualityLicenseManager(activity)
if (licenseManager.checkCachedLicense() > 0) { // if (licenseManager.checkCachedLicense() > 0) {
//已授权或者授权未过期 // //已授权或者授权未过期
Log.i(Constant.LIFE_ACCOUNT_AUTH_TAG, "FaceID 授权有效") // Log.i(Constant.LIFE_ACCOUNT_AUTH_TAG, "FaceID 授权有效")
return true // return true
} else { // } else {
//需要重新授权 // //需要重新授权
Log.i(Constant.LIFE_ACCOUNT_AUTH_TAG, "FaceID 授权无效,开始获取授权") // Log.i(Constant.LIFE_ACCOUNT_AUTH_TAG, "FaceID 授权无效,开始获取授权")
Thread { // Thread {
val manager = Manager(activity, true) // val manager = Manager(activity, true)
manager.registerLicenseManager(licenseManager) // manager.registerLicenseManager(licenseManager)
manager.takeLicenseFromNetwork( // manager.takeLicenseFromNetwork(
licenseManager.getContext( // licenseManager.getContext(
Configuration.getUUID(activity) // Configuration.getUUID(activity)
) // )
) // )
}.start() // }.start()
} // }
return false // return false
} // }
//
/** // /**
* 个人认证流程中断,下次进入认证流程时还原进度 // * 个人认证流程中断,下次进入认证流程时还原进度
*/ // */
private fun fillPersonalAuthInfo(data: AuthAuthenticationBean.Response) { // private fun fillPersonalAuthInfo(data: AuthAuthenticationBean.Response) {
viewBinding.ivIdCardPortraitFace.addImage(data.front_id_card_url) // viewBinding.ivIdCardPortraitFace.addImage(data.front_id_card_url)
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.showFaceAuthResult(true) // 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()
// 检查下一步条件 // // 检查下一步条件
(activity as LifeAccountPersonalAuthActivity).checkNextCondition() // (activity as LifeAccountPersonalAuthActivity).checkNextCondition()
} // }
//
/** // /**
* 企业认证流程中断,下次进入认证流程时还原进度 // * 企业认证流程中断,下次进入认证流程时还原进度
*/ // */
private fun fillEnterpriseAuthInfo(data: AuthMerchantCheckBean.Response) { // private fun fillEnterpriseAuthInfo(data: AuthMerchantCheckBean.Response) {
viewBinding.ivIdCardPortraitFace.addImage(data.legal_front_id_card_url) // viewBinding.ivIdCardPortraitFace.addImage(data.legal_front_id_card_url)
viewBinding.ivIdCardNationalEmblemFace.addImage(data.legal_back_id_card_url) // viewBinding.ivIdCardNationalEmblemFace.addImage(data.legal_back_id_card_url)
viewBinding.evRealName.fillEditContent(data.legal_person) // viewBinding.evRealName.fillEditContent(data.legal_person)
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.showFaceAuthResult(true) // 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 {
// 普通企业 // // 普通企业
viewBinding.evMobile.fillEditContent(data.mobile) // viewBinding.evMobile.fillEditContent(data.mobile)
} // }
// 检查下一步条件 // // 检查下一步条件
(activity as LifeAccountEnterpriseAuthActivity).checkNextCondition() // (activity as LifeAccountEnterpriseAuthActivity).checkNextCondition()
} // }
//
/** // /**
* 锁定当前输入状态 // * 锁定当前输入状态
* 即完成人脸验证后无法修改身份证照片、姓名、身份证号、职业标签 // * 即完成人脸验证后无法修改身份证照片、姓名、身份证号、职业标签
*/ // */
private fun lockPersonalAuthInfo() { // private fun lockPersonalAuthInfo() {
viewBinding.ivIdCardPortraitFace.disableModify() // viewBinding.ivIdCardPortraitFace.disableModify()
viewBinding.ivIdCardNationalEmblemFace.disableModify() // viewBinding.ivIdCardNationalEmblemFace.disableModify()
viewBinding.evRealName.disableModify() // viewBinding.evRealName.disableModify()
viewBinding.evIdCardNumber.disableModify() // viewBinding.evIdCardNumber.disableModify()
if (authType == Constant.TYPE_AUTH_PERSONAL) { // if (authType == Constant.TYPE_AUTH_PERSONAL) {
(activity as LifeAccountPersonalAuthActivity).disableModifyOccupation() // (activity as LifeAccountPersonalAuthActivity).disableModifyOccupation()
} // }
} // }
//
/** // /**
* 锁定当前输入状态 // * 锁定当前输入状态
* 即完成人脸验证后无法修改身份证照片、姓名、身份证号 // * 即完成人脸验证后无法修改身份证照片、姓名、身份证号
*/ // */
private fun lockEnterpriseAuthInfo() { // private fun lockEnterpriseAuthInfo() {
viewBinding.ivIdCardPortraitFace.disableModify() // viewBinding.ivIdCardPortraitFace.disableModify()
viewBinding.ivIdCardNationalEmblemFace.disableModify() // viewBinding.ivIdCardNationalEmblemFace.disableModify()
viewBinding.evRealName.disableModify() // viewBinding.evRealName.disableModify()
viewBinding.evIdCardNumber.disableModify() // viewBinding.evIdCardNumber.disableModify()
} // }
//
override fun onClick(v: View?) { // override fun onClick(v: View?) {
when (v?.id) { // when (v?.id) {
R.id.iv_id_card_portrait_face -> { // R.id.iv_id_card_portrait_face -> {
// 上传身份证人像面 // // 上传身份证人像面
curFace = Constant.ID_CARD_PORTRAIT_FACE // curFace = Constant.ID_CARD_PORTRAIT_FACE
Configuration.setCardType(activity, Constant.ID_CARD_PORTRAIT_FACE) // Configuration.setCardType(activity, Constant.ID_CARD_PORTRAIT_FACE)
activity?.let { // activity?.let {
BottomSelectDialog( // BottomSelectDialog(
it, // it,
this, // this,
arrayListOf( // arrayListOf(
BottomSelectBean(Constant.ITEM_TAKE_PHOTO), // BottomSelectBean(Constant.ITEM_TAKE_PHOTO),
BottomSelectBean(Constant.ITEM_OPEN_ALBUM) // BottomSelectBean(Constant.ITEM_OPEN_ALBUM)
) // )
).show() // ).show()
} // }
} // }
R.id.iv_id_card_national_emblem_face -> { // R.id.iv_id_card_national_emblem_face -> {
// 上传身份证国徽面 // // 上传身份证国徽面
curFace = Constant.ID_CARD_NATIONAL_EMBLEM_FACE // curFace = Constant.ID_CARD_NATIONAL_EMBLEM_FACE
Configuration.setCardType(activity, Constant.ID_CARD_NATIONAL_EMBLEM_FACE) // Configuration.setCardType(activity, Constant.ID_CARD_NATIONAL_EMBLEM_FACE)
activity?.let { // activity?.let {
BottomSelectDialog( // BottomSelectDialog(
it, // it,
this, // this,
arrayListOf( // arrayListOf(
BottomSelectBean(Constant.ITEM_TAKE_PHOTO), // BottomSelectBean(Constant.ITEM_TAKE_PHOTO),
BottomSelectBean(Constant.ITEM_OPEN_ALBUM) // BottomSelectBean(Constant.ITEM_OPEN_ALBUM)
) // )
).show() // ).show()
} // }
} // }
} // }
} // }
//
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权限 // // 判断camera权限
RxPermissions(this).request(Manifest.permission.CAMERA).subscribe { // RxPermissions(this).request(Manifest.permission.CAMERA).subscribe {
if (it) { // if (it) {
// 调用FaceID进行身份证采集 // // 调用FaceID进行身份证采集
if (checkFaceIDLicense()) { // if (checkFaceIDLicense()) {
startActivityForResult( // startActivityForResult(
Intent(activity, IDCardDetectActivity::class.java), // Intent(activity, IDCardDetectActivity::class.java),
Constant.REQUEST_CODE_ID_CARD_CAPTURE // Constant.REQUEST_CODE_ID_CARD_CAPTURE
) // )
} else { // } else {
ToastUtil.showToast(activity, "获取授权失败,请稍后重试") // ToastUtil.showToast(activity, "获取授权失败,请稍后重试")
} // }
} else { // } else {
ToastUtil.showToast(activity, "请在设置里同意相关权限") // ToastUtil.showToast(activity, "请在设置里同意相关权限")
} // }
} // }
} // }
Constant.ITEM_OPEN_ALBUM -> { // Constant.ITEM_OPEN_ALBUM -> {
// 打开系统相册 // // 打开系统相册
startActivityForResult( // startActivityForResult(
Intent(Intent.ACTION_PICK).setDataAndType( // Intent(Intent.ACTION_PICK).setDataAndType(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, // MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
"image/*" // "image/*"
), // ),
Constant.REQUEST_CODE_OPEN_ALBUM // Constant.REQUEST_CODE_OPEN_ALBUM
) // )
} // }
} // }
} // }
//
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) {
when (requestCode) { // when (requestCode) {
Constant.REQUEST_CODE_OPEN_ALBUM -> { // Constant.REQUEST_CODE_OPEN_ALBUM -> {
if (curFace == Constant.ID_CARD_PORTRAIT_FACE) { // if (curFace == Constant.ID_CARD_PORTRAIT_FACE) {
val bitmap = BitmapUtil.generateBitmapFromUri( // val bitmap = BitmapUtil.generateBitmapFromUri(
activity, // activity,
data?.data, // data?.data,
viewBinding.ivIdCardPortraitFace // viewBinding.ivIdCardPortraitFace
) // )
viewBinding.ivIdCardPortraitFace.addImage(bitmap) // viewBinding.ivIdCardPortraitFace.addImage(bitmap)
FileUtil.generateFileFromUri( // FileUtil.generateFileFromUri(
activity, // activity,
data?.data, // data?.data,
cachePath + Constant.FILE_PATH_ID_CARD_PORTRAIT_FACE // cachePath + Constant.FILE_PATH_ID_CARD_PORTRAIT_FACE
) // )
BitmapUtil.compressImage( // BitmapUtil.compressImage(
cachePath + Constant.FILE_PATH_ID_CARD_PORTRAIT_FACE, // cachePath + Constant.FILE_PATH_ID_CARD_PORTRAIT_FACE,
10 // 10
) // )
startIDCardUpload(Constant.ID_CARD_PORTRAIT_FACE) // startIDCardUpload(Constant.ID_CARD_PORTRAIT_FACE)
} else { // } else {
val bitmap = BitmapUtil.generateBitmapFromUri( // val bitmap = BitmapUtil.generateBitmapFromUri(
activity, // activity,
data?.data, // data?.data,
viewBinding.ivIdCardNationalEmblemFace // viewBinding.ivIdCardNationalEmblemFace
) // )
viewBinding.ivIdCardNationalEmblemFace.addImage(bitmap) // viewBinding.ivIdCardNationalEmblemFace.addImage(bitmap)
FileUtil.generateFileFromUri( // FileUtil.generateFileFromUri(
activity, // activity,
data?.data, // data?.data,
cachePath + Constant.FILE_PATH_ID_CARD_NATIONAL_EMBLEM_FACE // cachePath + Constant.FILE_PATH_ID_CARD_NATIONAL_EMBLEM_FACE
) // )
BitmapUtil.compressImage( // BitmapUtil.compressImage(
cachePath + Constant.FILE_PATH_ID_CARD_NATIONAL_EMBLEM_FACE, // cachePath + Constant.FILE_PATH_ID_CARD_NATIONAL_EMBLEM_FACE,
10 // 10
) // )
startIDCardUpload(Constant.ID_CARD_NATIONAL_EMBLEM_FACE) // startIDCardUpload(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) // val bytes = data?.getByteArrayExtra(EXTRA_NAME_ID_CARD_IMAGE)
if (curFace == Constant.ID_CARD_PORTRAIT_FACE) { // if (curFace == Constant.ID_CARD_PORTRAIT_FACE) {
val bitmap = bytes?.size?.let { // val bitmap = bytes?.size?.let {
BitmapFactory.decodeByteArray( // BitmapFactory.decodeByteArray(
bytes, 0, // bytes, 0,
it // it
) // )
} // }
viewBinding.ivIdCardPortraitFace.addImage(bitmap) // viewBinding.ivIdCardPortraitFace.addImage(bitmap)
BitmapUtil.generateFileFromBitmap( // BitmapUtil.generateFileFromBitmap(
bitmap, // bitmap,
100, // 100,
cachePath + Constant.FILE_PATH_ID_CARD_PORTRAIT_FACE // cachePath + Constant.FILE_PATH_ID_CARD_PORTRAIT_FACE
) // )
startIDCardUpload(Constant.ID_CARD_PORTRAIT_FACE) // startIDCardUpload(Constant.ID_CARD_PORTRAIT_FACE)
} else { // } else {
val bitmap = bytes?.size?.let { // val bitmap = bytes?.size?.let {
BitmapFactory.decodeByteArray( // BitmapFactory.decodeByteArray(
bytes, 0, // bytes, 0,
it // it
) // )
} // }
viewBinding.ivIdCardNationalEmblemFace.addImage(bitmap) // viewBinding.ivIdCardNationalEmblemFace.addImage(bitmap)
BitmapUtil.generateFileFromBitmap( // BitmapUtil.generateFileFromBitmap(
bitmap, // bitmap,
100, // 100,
cachePath + Constant.FILE_PATH_ID_CARD_NATIONAL_EMBLEM_FACE // cachePath + Constant.FILE_PATH_ID_CARD_NATIONAL_EMBLEM_FACE
) // )
startIDCardUpload(Constant.ID_CARD_NATIONAL_EMBLEM_FACE) // startIDCardUpload(Constant.ID_CARD_NATIONAL_EMBLEM_FACE)
} // }
} // }
} // }
} // }
} // }
//
/** // /**
* 执行身份证上传金山云 // * 执行身份证上传金山云
* @param face 身份证两面标识 // * @param face 身份证两面标识
*/ // */
private fun startIDCardUpload(face: Int) { // private fun startIDCardUpload(face: Int) {
val uploadFile = if (face == Constant.ID_CARD_PORTRAIT_FACE) { // val uploadFile = if (face == Constant.ID_CARD_PORTRAIT_FACE) {
File(cachePath + Constant.FILE_PATH_ID_CARD_PORTRAIT_FACE) // File(cachePath + Constant.FILE_PATH_ID_CARD_PORTRAIT_FACE)
} else { // } else {
File(cachePath + Constant.FILE_PATH_ID_CARD_NATIONAL_EMBLEM_FACE) // File(cachePath + Constant.FILE_PATH_ID_CARD_NATIONAL_EMBLEM_FACE)
} // }
KS3Core.INSTANCE.uploadObject( // KS3Core.INSTANCE.uploadObject(
uploadFile, // uploadFile,
KS3Core.ObjectType.IMAGE, // KS3Core.ObjectType.IMAGE,
KS3Core.ScenarioType.ID_CARD, // KS3Core.ScenarioType.ID_CARD,
object : KS3Core.OnKS3TaskListener { // object : KS3Core.OnKS3TaskListener {
override fun onTaskStart() { // override fun onTaskStart() {
//
} // }
//
override fun onTaskProgress(progress: Double) { // override fun onTaskProgress(progress: Double) {
//
} // }
//
override fun onTaskFinish() { // override fun onTaskFinish() {
//
} // }
//
override fun onTaskCancel() { // override fun onTaskCancel() {
//
} // }
//
override fun onTaskSuccess(bucket: String?, objectKey: String?) { // override fun onTaskSuccess(bucket: String?, objectKey: String?) {
if (face == Constant.ID_CARD_PORTRAIT_FACE) { // if (face == Constant.ID_CARD_PORTRAIT_FACE) {
LifeAccountAuthDataManager.personalAuthData.isIDCardPortraitFaceUpload = // LifeAccountAuthDataManager.personalAuthData.isIDCardPortraitFaceUpload =
true // true
LifeAccountAuthDataManager.personalAuthData.idCardPortraitFaceObjectKey = // LifeAccountAuthDataManager.personalAuthData.idCardPortraitFaceObjectKey =
objectKey // objectKey
LifeAccountAuthDataManager.personalAuthData.idCardPortraitFaceBucket = // LifeAccountAuthDataManager.personalAuthData.idCardPortraitFaceBucket =
bucket // bucket
LifeAccountAuthDataManager.personalAuthData.idCardPortraitFaceUrl = "${bucket}/${objectKey}" // LifeAccountAuthDataManager.personalAuthData.idCardPortraitFaceUrl = "${bucket}/${objectKey}"
} else { // } else {
LifeAccountAuthDataManager.personalAuthData.isIDCardNationalEmblemFaceUpload = // LifeAccountAuthDataManager.personalAuthData.isIDCardNationalEmblemFaceUpload =
true // true
LifeAccountAuthDataManager.personalAuthData.idCardNationalEmblemFaceObjectKey = // LifeAccountAuthDataManager.personalAuthData.idCardNationalEmblemFaceObjectKey =
objectKey // objectKey
LifeAccountAuthDataManager.personalAuthData.idCardNationalEmblemFaceBucket = // LifeAccountAuthDataManager.personalAuthData.idCardNationalEmblemFaceBucket =
bucket // bucket
LifeAccountAuthDataManager.personalAuthData.idCardNationalEmblemFaceUrl = "${bucket}/${objectKey}" // LifeAccountAuthDataManager.personalAuthData.idCardNationalEmblemFaceUrl = "${bucket}/${objectKey}"
} // }
startIDCardOCR(face, objectKey, bucket) // startIDCardOCR(face, objectKey, bucket)
} // }
//
override fun onTaskFailure(statesCode: Int, message: String?) { // override fun onTaskFailure(statesCode: Int, message: String?) {
//
} // }
} // }
) // )
} // }
//
/** // /**
* 执行身份证OCR // * 执行身份证OCR
*/ // */
private fun startIDCardOCR(face: Int, objectKey: String?, bucket: String?) { // private fun startIDCardOCR(face: Int, objectKey: String?, bucket: String?) {
if (face == Constant.ID_CARD_PORTRAIT_FACE) { // if (face == Constant.ID_CARD_PORTRAIT_FACE) {
ApiService.getIDCardOCR( // ApiService.getIDCardOCR(
object : IGetIDCardOCRCallback { // object : IGetIDCardOCRCallback {
override fun getIDCardOCRSuccess(result: GetIDCardOCRBean.Response?) { // override fun getIDCardOCRSuccess(result: GetIDCardOCRBean.Response?) {
result?.let { LifeAccountAuthDataManager.generateIDCardPortraitFaceData(it) } // result?.let { LifeAccountAuthDataManager.generateIDCardPortraitFaceData(it) }
// 回显OCR结果 // // 回显OCR结果
viewBinding.evRealName.fillEditContent(result?.posit?.name) // viewBinding.evRealName.fillEditContent(result?.posit?.name)
viewBinding.evIdCardNumber.fillEditContent(result?.posit?.idcard_number) // viewBinding.evIdCardNumber.fillEditContent(result?.posit?.idcard_number)
// 此时身份证人像面已上传并OCR识别完成 删除本地临时存储文件 // // 此时身份证人像面已上传并OCR识别完成 删除本地临时存储文件
File(cachePath + Constant.FILE_PATH_ID_CARD_PORTRAIT_FACE).apply { // File(cachePath + Constant.FILE_PATH_ID_CARD_PORTRAIT_FACE).apply {
if (exists()) delete() // if (exists()) delete()
} // }
// 检查下一步条件 // // 检查下一步条件
if (authType == Constant.TYPE_AUTH_PERSONAL) { // if (authType == Constant.TYPE_AUTH_PERSONAL) {
activity?.let { (it as LifeAccountPersonalAuthActivity).checkNextCondition() } // activity?.let { (it as LifeAccountPersonalAuthActivity).checkNextCondition() }
} else { // } else {
activity?.let { (it as LifeAccountEnterpriseAuthActivity).checkNextCondition() } // activity?.let { (it as LifeAccountEnterpriseAuthActivity).checkNextCondition() }
} // }
} // }
//
override fun getIDCardOCRFailure(message: String?) { // override fun getIDCardOCRFailure(message: String?) {
//
} // }
//
}, hashMapOf( // }, hashMapOf(
Pair("posit_image_url", "$bucket/$objectKey") // Pair("posit_image_url", "$bucket/$objectKey")
) // )
) // )
} else { // } else {
ApiService.getIDCardOCR( // ApiService.getIDCardOCR(
object : IGetIDCardOCRCallback { // object : IGetIDCardOCRCallback {
override fun getIDCardOCRSuccess(result: GetIDCardOCRBean.Response?) { // override fun getIDCardOCRSuccess(result: GetIDCardOCRBean.Response?) {
result?.let { LifeAccountAuthDataManager.generateIDCardNationEmblemFaceData(it) } // result?.let { LifeAccountAuthDataManager.generateIDCardNationEmblemFaceData(it) }
// 此时身份证国徽面已上传并OCR识别完成 删除本地临时存储文件 // // 此时身份证国徽面已上传并OCR识别完成 删除本地临时存储文件
File(cachePath + Constant.FILE_PATH_ID_CARD_NATIONAL_EMBLEM_FACE).apply { // File(cachePath + Constant.FILE_PATH_ID_CARD_NATIONAL_EMBLEM_FACE).apply {
if (exists()) delete() // if (exists()) delete()
} // }
// 检查下一步条件 // // 检查下一步条件
if (authType == Constant.TYPE_AUTH_PERSONAL) { // if (authType == Constant.TYPE_AUTH_PERSONAL) {
activity?.let { (it as LifeAccountPersonalAuthActivity).checkNextCondition() } // activity?.let { (it as LifeAccountPersonalAuthActivity).checkNextCondition() }
} else { // } else {
activity?.let { (it as LifeAccountEnterpriseAuthActivity).checkNextCondition() } // activity?.let { (it as LifeAccountEnterpriseAuthActivity).checkNextCondition() }
} // }
} // }
//
override fun getIDCardOCRFailure(message: String?) { // override fun getIDCardOCRFailure(message: String?) {
//
} // }
//
}, hashMapOf( // }, hashMapOf(
Pair("back_image_url", "$bucket/$objectKey") // Pair("back_image_url", "$bucket/$objectKey")
) // )
) // )
} // }
} // }
//
override fun getTokenSuccess(t: HttpResult<AuthPersonalGetTokenBean.Response?>?) { // override fun getTokenSuccess(t: HttpResult<AuthPersonalGetTokenBean.Response?>?) {
LifeAccountAuthDataManager.personalAuthData.liveDetectBizToken = t?.result?.biz_token // LifeAccountAuthDataManager.personalAuthData.liveDetectBizToken = t?.result?.biz_token
megLiveManager.preDetect( // megLiveManager.preDetect(
activity, // activity,
t?.result?.biz_token, // t?.result?.biz_token,
ALIVE_DETECT_LANGUAGE, // ALIVE_DETECT_LANGUAGE,
ALIVE_DETECT_HOST, // ALIVE_DETECT_HOST,
fileFaceIDPath + File.separator + FILE_NAME_ALIVE_DETECT_MODEL, // fileFaceIDPath + File.separator + FILE_NAME_ALIVE_DETECT_MODEL,
this // this
) // )
} // }
//
override fun identifyIdOcrVerifySuccess(t: HttpResult<IdentifyIdOcrVerifyBean.Response?>?) { // override fun identifyIdOcrVerifySuccess(t: HttpResult<IdentifyIdOcrVerifyBean.Response?>?) {
if (t?.result?.verify_result == true) { // if (t?.result?.verify_result == true) {
// 保存人脸验证结果 // // 保存人脸验证结果
LifeAccountAuthDataManager.personalAuthData.isFaceAuthPass = true // LifeAccountAuthDataManager.personalAuthData.isFaceAuthPass = true
// 人脸验证通过UI // // 人脸验证通过UI
viewBinding.avFaceAuth.showFaceAuthResult(true) // viewBinding.avFaceAuth.showFaceAuthResult(true)
// 删除活体检测数据 // // 删除活体检测数据
File(cachePath + Constant.FILE_PATH_ALIVE_DETECT_VERIFY_DATA).apply { // File(cachePath + Constant.FILE_PATH_ALIVE_DETECT_VERIFY_DATA).apply {
if (exists()) delete() // if (exists()) delete()
} // }
lockPersonalAuthInfo() // lockPersonalAuthInfo()
// 回调server 保存活体识别认证状态 // // 回调server 保存活体识别认证状态
if (authType == Constant.TYPE_AUTH_PERSONAL) { // if (authType == Constant.TYPE_AUTH_PERSONAL) {
ApiService.authLiveIdentity(this) // ApiService.authLiveIdentity(this)
// 检查下一步条件 // // 检查下一步条件
activity?.let { (it as LifeAccountPersonalAuthActivity).checkNextCondition() } // activity?.let { (it as LifeAccountPersonalAuthActivity).checkNextCondition() }
} else { // } else {
ApiService.authEnterpriseLiveIdentity( // ApiService.authEnterpriseLiveIdentity(
this, // this,
hashMapOf( // hashMapOf(
Pair( // Pair(
"record_id", // "record_id",
LifeAccountAuthDataManager.merchantAuthData.authRecordId.toString() // LifeAccountAuthDataManager.merchantAuthData.authRecordId.toString()
) // )
) // )
) // )
// 检查下一步条件 // // 检查下一步条件
activity?.let { (it as LifeAccountEnterpriseAuthActivity).checkNextCondition() } // activity?.let { (it as LifeAccountEnterpriseAuthActivity).checkNextCondition() }
} // }
} // }
} // }
//
override fun identifyIdOcrVerifyFailure(t: HttpResult<IdentifyIdOcrVerifyBean.Response?>?) { // override fun identifyIdOcrVerifyFailure(t: HttpResult<IdentifyIdOcrVerifyBean.Response?>?) {
LifeAccountAuthDataManager.personalAuthData.isFaceAuthPass = false // LifeAccountAuthDataManager.personalAuthData.isFaceAuthPass = false
// 人脸验证未通过UI // // 人脸验证未通过UI
viewBinding.avFaceAuth.showFaceAuthResult(false) // viewBinding.avFaceAuth.showFaceAuthResult(false)
} // }
//
override fun onPreStart() { // override fun onPreStart() {
// TODO: 6/1/21 show progress // // TODO: 6/1/21 show progress
} // }
//
override fun onPreFinish(token: String?, errorCode: Int, errorMessage: String?) { // override fun onPreFinish(token: String?, errorCode: Int, errorMessage: String?) {
// 只有当完成预处理且errorCode==1000的时候才可以调用startDetect开启活体检测 // // 只有当完成预处理且errorCode==1000的时候才可以调用startDetect开启活体检测
if (errorCode == 1000) { // if (errorCode == 1000) {
megLiveManager.setVerticalDetectionType(MegLiveManager.DETECT_VERITICAL_FRONT) // megLiveManager.setVerticalDetectionType(MegLiveManager.DETECT_VERITICAL_FRONT)
megLiveManager.startDetect(this) // megLiveManager.startDetect(this)
} else { // } else {
Log.e( // Log.e(
Constant.LIFE_ACCOUNT_AUTH_TAG, // Constant.LIFE_ACCOUNT_AUTH_TAG,
"alive detect pre detect failure, errorCode: $errorCode, errorMessage: $errorMessage" // "alive detect pre detect failure, errorCode: $errorCode, errorMessage: $errorMessage"
) // )
} // }
} // }
//
override fun onDetectFinish( // override fun onDetectFinish(
token: String?, // token: String?,
errorCode: Int, // errorCode: Int,
errorMessage: String?, // errorMessage: String?,
data: String? // data: String?
) { // ) {
if (errorCode == 1000) { // if (errorCode == 1000) {
// 保存活体加密数据 上传金山云 // // 保存活体加密数据 上传金山云
FileUtil.generateFileFromString( // FileUtil.generateFileFromString(
data, // data,
cachePath + Constant.FILE_PATH_ALIVE_DETECT_VERIFY_DATA // cachePath + Constant.FILE_PATH_ALIVE_DETECT_VERIFY_DATA
) // )
KS3Core.INSTANCE.uploadObject( // KS3Core.INSTANCE.uploadObject(
cachePath + Constant.FILE_PATH_ALIVE_DETECT_VERIFY_DATA, // cachePath + Constant.FILE_PATH_ALIVE_DETECT_VERIFY_DATA,
KS3Core.ScenarioType.ALIVE_DETECT, // KS3Core.ScenarioType.ALIVE_DETECT,
this // this
) // )
} else { // } else {
Log.e( // Log.e(
Constant.LIFE_ACCOUNT_AUTH_TAG, // Constant.LIFE_ACCOUNT_AUTH_TAG,
"alive detect detect failure, errorCode: $errorCode, errorMessage: $errorMessage" // "alive detect detect failure, errorCode: $errorCode, errorMessage: $errorMessage"
) // )
viewBinding.avFaceAuth.showFaceAuthResult(false) // viewBinding.avFaceAuth.showFaceAuthResult(false)
} // }
} // }
//
override fun onTaskStart() { // override fun onTaskStart() {
//
} // }
//
override fun onTaskProgress(progress: Double) { // override fun onTaskProgress(progress: Double) {
//
} // }
//
override fun onTaskFinish() { // override fun onTaskFinish() {
//
} // }
//
override fun onTaskCancel() { // override fun onTaskCancel() {
//
} // }
//
override fun onTaskSuccess(bucket: String?, objectKey: String?) { // override fun onTaskSuccess(bucket: String?, objectKey: String?) {
LifeAccountAuthDataManager.personalAuthData.liveDetectObjectKey = objectKey // LifeAccountAuthDataManager.personalAuthData.liveDetectObjectKey = objectKey
LifeAccountAuthDataManager.personalAuthData.liveDetectBucket = bucket // LifeAccountAuthDataManager.personalAuthData.liveDetectBucket = bucket
ApiService.identifyIdOcrVerify( // ApiService.identifyIdOcrVerify(
this, // this,
hashMapOf( // hashMapOf(
Pair( // Pair(
"biz_token", // "biz_token",
LifeAccountAuthDataManager.personalAuthData.liveDetectBizToken // LifeAccountAuthDataManager.personalAuthData.liveDetectBizToken
), // ),
Pair("meglive_url", "$bucket/$objectKey") // Pair("meglive_url", "$bucket/$objectKey")
) // )
) // )
} // }
//
override fun onTaskFailure(statesCode: Int, message: String?) { // override fun onTaskFailure(statesCode: Int, message: String?) {
//
} // }
//
override fun authPersonCheckSuccess() { // override fun authPersonCheckSuccess() {
// 身份信息校验成功后才允许进行人脸验证 // // 身份信息校验成功后才允许进行人脸验证
// 若存在上一次活体检测数据则删除 处理活体检测失败 再次进入 // // 若存在上一次活体检测数据则删除 处理活体检测失败 再次进入
File(cachePath + Constant.FILE_PATH_ALIVE_DETECT_VERIFY_DATA).apply { // File(cachePath + Constant.FILE_PATH_ALIVE_DETECT_VERIFY_DATA).apply {
if (exists()) delete() // if (exists()) delete()
} // }
// 跳转人脸认证 // // 跳转人脸认证
ApiService.authPersonalGetToken( // ApiService.authPersonalGetToken(
this, // this,
hashMapOf( // hashMapOf(
Pair("id_number", LifeAccountAuthDataManager.personalAuthData.idCardNum), // Pair("id_number", LifeAccountAuthDataManager.personalAuthData.idCardNum),
Pair("id_card_name", LifeAccountAuthDataManager.personalAuthData.realName), // Pair("id_card_name", LifeAccountAuthDataManager.personalAuthData.realName),
Pair("liveness_type", Constant.TYPE_MEG_LIVE) // Pair("liveness_type", Constant.TYPE_MEG_LIVE)
) // )
) // )
} // }
//
override fun authPersonCheckFailure(code: Int?, message: String?) { // override fun authPersonCheckFailure(code: Int?, message: String?) {
if (code == Constant.ERROR_CODE_PERSONAL_AUTH_INFO_DUPLICATE) { // if (code == Constant.ERROR_CODE_PERSONAL_AUTH_INFO_DUPLICATE) {
// 身份证号已认证并且认证手机号不是当前手机号 弹窗提示 // // 身份证号已认证并且认证手机号不是当前手机号 弹窗提示
activity?.let { // activity?.let {
HintDialog( // HintDialog(
it, message.toString(), // it, message.toString(),
arrayListOf( // arrayListOf(
HintOptionBean(resources.getString(R.string.change)), // HintOptionBean(resources.getString(R.string.change)),
HintOptionBean(resources.getString(R.string.login_again)) // HintOptionBean(resources.getString(R.string.login_again))
), it as LifeAccountPersonalAuthActivity // ), it as LifeAccountPersonalAuthActivity
).setRightBtnColor(ContextCompat.getColor(it, R.color.color_FF1852F1)).show() // ).setRightBtnColor(ContextCompat.getColor(it, R.color.color_FF1852F1)).show()
} // }
return // return
} // }
// 展示输入框下错误提示 // // 展示输入框下错误提示
when (message) { // when (message) {
Constant.ERROR_MESSAGE_REAL_NAME -> { // Constant.ERROR_MESSAGE_REAL_NAME -> {
viewBinding.evRealName.showErrorTips( // viewBinding.evRealName.showErrorTips(
resources.getText(R.string.id_card_name_error_tips) as String // resources.getText(R.string.id_card_name_error_tips) as String
) // )
viewBinding.evRealName.highLightEditContent() // viewBinding.evRealName.highLightEditContent()
} // }
Constant.ERROR_MESSAGE_ID_CARD_NUMBER -> { // Constant.ERROR_MESSAGE_ID_CARD_NUMBER -> {
viewBinding.evIdCardNumber.showErrorTips(resources.getText(R.string.id_card_number_error_tips) as String) // viewBinding.evIdCardNumber.showErrorTips(resources.getText(R.string.id_card_number_error_tips) as String)
viewBinding.evIdCardNumber.highLightEditContent() // viewBinding.evIdCardNumber.highLightEditContent()
} // }
} // }
} // }
//
override fun authLiveIdentitySuccess() { // override fun authLiveIdentitySuccess() {
//
} // }
//
override fun authLiveIdentityFailure(message: String?) { // override fun authLiveIdentityFailure(message: String?) {
//
} // }
//
override fun onImageClear(from: LifeAccountAuthImageView) { // override fun onImageClear(from: LifeAccountAuthImageView) {
if (from == viewBinding.ivIdCardPortraitFace) { // if (from == viewBinding.ivIdCardPortraitFace) {
// 清除照片时删除本地文件 // // 清除照片时删除本地文件
File(cachePath + Constant.FILE_PATH_ID_CARD_PORTRAIT_FACE).apply { // File(cachePath + Constant.FILE_PATH_ID_CARD_PORTRAIT_FACE).apply {
if (exists()) delete() // if (exists()) delete()
} // }
LifeAccountAuthDataManager.personalAuthData.isIDCardPortraitFaceUpload = false // LifeAccountAuthDataManager.personalAuthData.isIDCardPortraitFaceUpload = false
viewBinding.evRealName.clearEditContent() // viewBinding.evRealName.clearEditContent()
viewBinding.evIdCardNumber.clearEditContent() // viewBinding.evIdCardNumber.clearEditContent()
LifeAccountAuthDataManager.personalAuthData.realName = "" // LifeAccountAuthDataManager.personalAuthData.realName = ""
LifeAccountAuthDataManager.personalAuthData.idCardNum = "" // LifeAccountAuthDataManager.personalAuthData.idCardNum = ""
} else { // } else {
File(cachePath + Constant.FILE_PATH_ID_CARD_NATIONAL_EMBLEM_FACE).apply { // File(cachePath + Constant.FILE_PATH_ID_CARD_NATIONAL_EMBLEM_FACE).apply {
if (exists()) delete() // if (exists()) delete()
} // }
LifeAccountAuthDataManager.personalAuthData.isIDCardNationalEmblemFaceUpload = false // LifeAccountAuthDataManager.personalAuthData.isIDCardNationalEmblemFaceUpload = false
} // }
// 检查下一步条件 // // 检查下一步条件
if (authType == Constant.TYPE_AUTH_PERSONAL) { // if (authType == Constant.TYPE_AUTH_PERSONAL) {
(activity as LifeAccountPersonalAuthActivity).checkNextCondition() // (activity as LifeAccountPersonalAuthActivity).checkNextCondition()
} else { // } else {
(activity as LifeAccountEnterpriseAuthActivity).checkNextCondition() // (activity as LifeAccountEnterpriseAuthActivity).checkNextCondition()
} // }
} // }
//
override fun onTextClear(from: LifeAccountAuthIdentityInfoEditView) { // override fun onTextClear(from: LifeAccountAuthIdentityInfoEditView) {
when (from) { // when (from) {
viewBinding.evRealName -> { // viewBinding.evRealName -> {
LifeAccountAuthDataManager.personalAuthData.realName = "" // LifeAccountAuthDataManager.personalAuthData.realName = ""
} // }
viewBinding.evIdCardNumber -> { // viewBinding.evIdCardNumber -> {
LifeAccountAuthDataManager.personalAuthData.idCardNum = "" // LifeAccountAuthDataManager.personalAuthData.idCardNum = ""
} // }
viewBinding.evMobile -> { // viewBinding.evMobile -> {
LifeAccountAuthDataManager.personalAuthData.phoneNum = "" // LifeAccountAuthDataManager.personalAuthData.phoneNum = ""
} // }
} // }
// 检查下一步条件 // // 检查下一步条件
if (authType == Constant.TYPE_AUTH_PERSONAL) { // if (authType == Constant.TYPE_AUTH_PERSONAL) {
(activity as LifeAccountPersonalAuthActivity).checkNextCondition() // (activity as LifeAccountPersonalAuthActivity).checkNextCondition()
} else { // } else {
(activity as LifeAccountEnterpriseAuthActivity).checkNextCondition() // (activity as LifeAccountEnterpriseAuthActivity).checkNextCondition()
} // }
} // }
//
override fun onTextChange(from: LifeAccountAuthIdentityInfoEditView, text: String) { // override fun onTextChange(from: LifeAccountAuthIdentityInfoEditView, text: String) {
when (from) { // when (from) {
viewBinding.evRealName -> { // viewBinding.evRealName -> {
LifeAccountAuthDataManager.personalAuthData.realName = text // LifeAccountAuthDataManager.personalAuthData.realName = text
} // }
viewBinding.evIdCardNumber -> { // viewBinding.evIdCardNumber -> {
LifeAccountAuthDataManager.personalAuthData.idCardNum = text // LifeAccountAuthDataManager.personalAuthData.idCardNum = text
} // }
viewBinding.evMobile -> { // viewBinding.evMobile -> {
LifeAccountAuthDataManager.personalAuthData.phoneNum = text // LifeAccountAuthDataManager.personalAuthData.phoneNum = text
} // }
} // }
// 检查下一步条件 // // 检查下一步条件
if (authType == Constant.TYPE_AUTH_PERSONAL) { // if (authType == Constant.TYPE_AUTH_PERSONAL) {
(activity as LifeAccountPersonalAuthActivity).checkNextCondition() // (activity as LifeAccountPersonalAuthActivity).checkNextCondition()
} else { // } else {
(activity as LifeAccountEnterpriseAuthActivity).checkNextCondition() // (activity as LifeAccountEnterpriseAuthActivity).checkNextCondition()
} // }
} // }
//
override fun onStartFaceAuth() { // override fun onStartFaceAuth() {
// 判断是否满足条件进行活体检测 // // 判断是否满足条件进行活体检测
if (!checkFaceAuthCondition()) { // if (!checkFaceAuthCondition()) {
ToastUtil.showToast(activity, "请补全信息后重试") // ToastUtil.showToast(activity, "请补全信息后重试")
return // return
} // }
// 判断camera权限 // // 判断camera权限
RxPermissions(this).request(Manifest.permission.CAMERA).subscribe { // RxPermissions(this).request(Manifest.permission.CAMERA).subscribe {
if (it) { // if (it) {
when (authType) { // when (authType) {
Constant.TYPE_AUTH_PERSONAL -> { // Constant.TYPE_AUTH_PERSONAL -> {
ApiService.authPersonalCheck( // ApiService.authPersonalCheck(
this, // this,
LifeAccountAuthDataManager.generateAuthPersonalCheckRequest() // LifeAccountAuthDataManager.generateAuthPersonalCheckRequest()
) // )
} // }
Constant.TYPE_AUTH_INDIVIDUAL_BUSINESS -> { // Constant.TYPE_AUTH_INDIVIDUAL_BUSINESS -> {
ApiService.authIndividualBusinessIdentityCommit( // ApiService.authIndividualBusinessIdentityCommit(
this, // this,
LifeAccountAuthDataManager.generateAuthIndividualBusinessIdentityCommitRequest() // LifeAccountAuthDataManager.generateAuthIndividualBusinessIdentityCommitRequest()
) // )
} // }
} // }
} else { // } else {
ToastUtil.showToast(activity, "请在设置里同意相关权限") // ToastUtil.showToast(activity, "请在设置里同意相关权限")
} // }
} // }
} // }
//
override fun authIndividualBusinessIdentityCommitSuccess() { // override fun authIndividualBusinessIdentityCommitSuccess() {
// 身份信息校验成功后才允许进行人脸验证 // // 身份信息校验成功后才允许进行人脸验证
// 若存在上一次活体检测数据则删除 处理活体检测失败 再次进入 // // 若存在上一次活体检测数据则删除 处理活体检测失败 再次进入
File(cachePath + Constant.FILE_PATH_ALIVE_DETECT_VERIFY_DATA).apply { // File(cachePath + Constant.FILE_PATH_ALIVE_DETECT_VERIFY_DATA).apply {
if (exists()) delete() // if (exists()) delete()
} // }
// 跳转人脸认证 // // 跳转人脸认证
ApiService.authPersonalGetToken( // ApiService.authPersonalGetToken(
this, // this,
hashMapOf( // hashMapOf(
Pair("id_number", LifeAccountAuthDataManager.personalAuthData.idCardNum), // Pair("id_number", LifeAccountAuthDataManager.personalAuthData.idCardNum),
Pair("id_card_name", LifeAccountAuthDataManager.personalAuthData.realName), // Pair("id_card_name", LifeAccountAuthDataManager.personalAuthData.realName),
Pair("liveness_type", Constant.TYPE_MEG_LIVE) // Pair("liveness_type", Constant.TYPE_MEG_LIVE)
) // )
) // )
} // }
//
override fun authIndividualBusinessIdentityCommitFailure(message: String?) { // override fun authIndividualBusinessIdentityCommitFailure(message: String?) {
// 展示输入框下错误提示 // // 展示输入框下错误提示
when (message) { // when (message) {
Constant.ERROR_MESSAGE_REAL_NAME -> { // Constant.ERROR_MESSAGE_REAL_NAME -> {
viewBinding.evRealName.showErrorTips( // viewBinding.evRealName.showErrorTips(
resources.getText(R.string.id_card_name_error_tips) as String // resources.getText(R.string.id_card_name_error_tips) as String
) // )
viewBinding.evRealName.highLightEditContent() // viewBinding.evRealName.highLightEditContent()
} // }
Constant.ERROR_MESSAGE_ID_CARD_NUMBER -> { // Constant.ERROR_MESSAGE_ID_CARD_NUMBER -> {
viewBinding.evIdCardNumber.showErrorTips(resources.getText(R.string.id_card_number_error_tips) as String) // viewBinding.evIdCardNumber.showErrorTips(resources.getText(R.string.id_card_number_error_tips) as String)
viewBinding.evIdCardNumber.highLightEditContent() // viewBinding.evIdCardNumber.highLightEditContent()
} // }
} // }
} // }
//
override fun authEnterpriseLiveIdentitySuccess() { // override fun authEnterpriseLiveIdentitySuccess() {
//
} // }
//
override fun authEnterpriseLiveIdentityFailure(message: String?) { // override fun authEnterpriseLiveIdentityFailure(message: String?) {
//
} // }
//
/** // /**
* 本地校验是否可以进行人脸验证 // * 本地校验是否可以进行人脸验证
* 必须同时满足真实姓名已填、身份证号已填、身份证两面已上传、职业标签已选(只有个人认证需要) // * 必须同时满足真实姓名已填、身份证号已填、身份证两面已上传、职业标签已选(只有个人认证需要)
*/ // */
private fun checkFaceAuthCondition(): Boolean { // private fun checkFaceAuthCondition(): Boolean {
if (authType == Constant.TYPE_AUTH_PERSONAL) { // if (authType == Constant.TYPE_AUTH_PERSONAL) {
return !LifeAccountAuthDataManager.personalAuthData.occupation.isNullOrEmpty() // return !LifeAccountAuthDataManager.personalAuthData.occupation.isNullOrEmpty()
&& !LifeAccountAuthDataManager.personalAuthData.realName.isNullOrEmpty() // && !LifeAccountAuthDataManager.personalAuthData.realName.isNullOrEmpty()
&& !LifeAccountAuthDataManager.personalAuthData.idCardNum.isNullOrEmpty() // && !LifeAccountAuthDataManager.personalAuthData.idCardNum.isNullOrEmpty()
&& LifeAccountAuthDataManager.personalAuthData.isIDCardPortraitFaceUpload // && LifeAccountAuthDataManager.personalAuthData.isIDCardPortraitFaceUpload
&& LifeAccountAuthDataManager.personalAuthData.isIDCardNationalEmblemFaceUpload // && LifeAccountAuthDataManager.personalAuthData.isIDCardNationalEmblemFaceUpload
} // }
return !LifeAccountAuthDataManager.personalAuthData.realName.isNullOrEmpty() // return !LifeAccountAuthDataManager.personalAuthData.realName.isNullOrEmpty()
&& !LifeAccountAuthDataManager.personalAuthData.idCardNum.isNullOrEmpty() // && !LifeAccountAuthDataManager.personalAuthData.idCardNum.isNullOrEmpty()
&& LifeAccountAuthDataManager.personalAuthData.isIDCardPortraitFaceUpload // && LifeAccountAuthDataManager.personalAuthData.isIDCardPortraitFaceUpload
&& LifeAccountAuthDataManager.personalAuthData.isIDCardNationalEmblemFaceUpload // && LifeAccountAuthDataManager.personalAuthData.isIDCardNationalEmblemFaceUpload
} // }
//
override fun onCheckPrivacyAgreement(isCheck: Boolean) { // override fun onCheckPrivacyAgreement(isCheck: Boolean) {
LifeAccountAuthDataManager.personalAuthData.isAgreePrivacyAgreement = isCheck // LifeAccountAuthDataManager.personalAuthData.isAgreePrivacyAgreement = isCheck
// 检查下一步条件 // // 检查下一步条件
if (authType == Constant.TYPE_AUTH_PERSONAL) { // if (authType == Constant.TYPE_AUTH_PERSONAL) {
(activity as LifeAccountPersonalAuthActivity).checkNextCondition() // (activity as LifeAccountPersonalAuthActivity).checkNextCondition()
} else { // } else {
(activity as LifeAccountEnterpriseAuthActivity).checkNextCondition() // (activity as LifeAccountEnterpriseAuthActivity).checkNextCondition()
} // }
} // }
//
} //}
...@@ -13,7 +13,6 @@ import com.yidian.bcommon.extensions.clickAntiShake ...@@ -13,7 +13,6 @@ import com.yidian.bcommon.extensions.clickAntiShake
import com.yidian.bcommon.extensions.initTitleBar import com.yidian.bcommon.extensions.initTitleBar
import com.yidian.bcommon.utils.AuthUtils import com.yidian.bcommon.utils.AuthUtils
import com.yidian.bcommon.utils.CheckApkExistUtil import com.yidian.bcommon.utils.CheckApkExistUtil
import com.yidian.news.util.LogUtils
import com.yidian.shenghuoquan.bmanagercenter.R import com.yidian.shenghuoquan.bmanagercenter.R
import com.yidian.shenghuoquan.bmanagercenter.databinding.ActivityWechatAuthBinding import com.yidian.shenghuoquan.bmanagercenter.databinding.ActivityWechatAuthBinding
import com.yidian.utils.ToastUtil import com.yidian.utils.ToastUtil
...@@ -57,7 +56,6 @@ class WeChatAuthActivity : BaseActivity<ActivityWechatAuthBinding>() { ...@@ -57,7 +56,6 @@ class WeChatAuthActivity : BaseActivity<ActivityWechatAuthBinding>() {
} }
val authMap = AuthUtils.toAuthorize(this, SHARE_MEDIA.WEIXIN) val authMap = AuthUtils.toAuthorize(this, SHARE_MEDIA.WEIXIN)
val accessToken = authMap["accessToken"] val accessToken = authMap["accessToken"]
LogUtils.e("auth", "微信授权结果$accessToken")
ToastUtil.showToast(this, "微信授权结果$accessToken") ToastUtil.showToast(this, "微信授权结果$accessToken")
if (accessToken.isNullOrBlank()) { if (accessToken.isNullOrBlank()) {
ToastUtil.showToast(this, "微信授权失败") ToastUtil.showToast(this, "微信授权失败")
......
// Top-level build file where you can add configuration options common to all sub-projects/modules. // Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript { buildscript {
apply from: "https://git.yidian-inc.com:8021/arc-android/config/raw/master/version.gradle"
apply from: "config/config.gradle" apply from: "config/config.gradle"
addRepos(repositories) ext.kotlin_version = "1.4.32"
ext.kotlin_version = build_versions.kotlin_version
repositories { repositories {
maven { url 'https://maven.aliyun.com/repository/public/' } maven { url 'https://maven.aliyun.com/repository/public/' }
google() google()
mavenCentral() mavenCentral()
maven { url 'https://jitpack.io' }
maven { url uri("repo") }
maven { url "../repo"}
} }
dependencies { dependencies {
classpath deps.gradle.plugin classpath "com.android.tools.build:gradle:4.0.1"
classpath deps.kotlin.plugin
classpath deps.yac.engine
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "com.yidian.yac:yac-engine:0.0.6"
// classpath files('CommonLib/BCommon/libs/yac-engine-0.0.6.jar')
// NOTE: Do not place your application dependencies here; they belong // NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files // in the individual module build.gradle files
} }
...@@ -22,11 +23,12 @@ buildscript { ...@@ -22,11 +23,12 @@ buildscript {
allprojects { allprojects {
repositories { repositories {
maven { url 'https://maven.aliyun.com/repository/public/' } maven { url 'https://maven.aliyun.com/repository/public/' }
maven { url "http://dailybuild2.yidian-inc.com:8088/repository/maven-public/" }
google() google()
mavenCentral() mavenCentral()
maven { url 'https://jitpack.io' }
maven { url uri("repo") }
maven { url "../repo"}
} }
addRepos(repositories)
} }
/** /**
...@@ -38,6 +40,14 @@ ext { ...@@ -38,6 +40,14 @@ ext {
version_name = '0.0.31-SNAPSHOT' version_name = '0.0.31-SNAPSHOT'
} }
ext.build_versions = [
"minSdkVersion" : 21,
"targetSdkVersion" : 29,
"compileSdkVersion": 29,
"build_tools" : "27.0.2",
"kotlin_version" : "1.4.32"
]
task clean(type: Delete) { task clean(type: Delete) {
delete rootProject.buildDir delete rootProject.buildDir
} }
\ No newline at end of file
...@@ -37,26 +37,26 @@ ext.dependencies = [ ...@@ -37,26 +37,26 @@ ext.dependencies = [
'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.0', 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.0',
"androidx.recyclerview:recyclerview:1.1.0", "androidx.recyclerview:recyclerview:1.1.0",
// 一点内部SDK // // 一点内部SDK
'com.yidian.android:CommonUtil:0.0.88', // 'com.yidian.android:CommonUtil:0.0.88',
'com.yidian.android:nightmode:0.0.88', // 'com.yidian.android:nightmode:0.0.88',
// 风控SDK // // 风控SDK
'com.yidian.ftcomponents:ftdevicefinger:0.0.14', // 'com.yidian.ftcomponents:ftdevicefinger:0.0.14',
// http框架 // // http框架
'com.yidian.framework.mobile:ydhttp:1.1.3-SNAPSHOT', // 'com.yidian.framework.mobile:ydhttp:1.1.3-SNAPSHOT',
'com.yidian.framework.mobile:ydutils:1.0.1-SNAPSHOT', // 'com.yidian.framework.mobile:ydutils:1.0.1-SNAPSHOT',
// 磐石 // // 磐石
'com.yidian.framework.mobile:xdiamond:1.1.1', // 'com.yidian.framework.mobile:xdiamond:1.1.1',
// 慧眼 // // 慧眼
'com.yidian.framework.mobile.xinsight:xinsight:1.1.7', // 'com.yidian.framework.mobile.xinsight:xinsight:1.1.7',
// NA页面栈 // // NA页面栈
'com.yidian.xpage:xpagenative:0.0.1', // 'com.yidian.xpage:xpagenative:0.0.1',
// 组件化架构 // // 组件化架构
deps.yac.core, // deps.yac.core,
deps.xarc.xbrid, // deps.xarc.xbrid,
deps.xarc.xbase, // deps.xarc.xbase,
deps.xarc.xrouter, // deps.xarc.xrouter,
deps.xarc.xevent, // deps.xarc.xevent,
// 第三方SDK // 第三方SDK
// 屏幕适配 https://github.com/JessYanCoding/AndroidAutoSize // 屏幕适配 https://github.com/JessYanCoding/AndroidAutoSize
...@@ -81,12 +81,19 @@ ext.dependencies = [ ...@@ -81,12 +81,19 @@ ext.dependencies = [
'io.reactivex.rxjava3:rxandroid:3.0.0', 'io.reactivex.rxjava3:rxandroid:3.0.0',
// RxJava https://github.com/ReactiveX/RxJava // RxJava https://github.com/ReactiveX/RxJava
'io.reactivex.rxjava3:rxjava:3.0.9', 'io.reactivex.rxjava3:rxjava:3.0.9',
// 以下为新增的关联依赖库
'com.google.code.gson:gson:2.8.8',
'com.orhanobut:hawk:2.0.1',
'com.squareup.okhttp3:okhttp:4.9.2',
'com.squareup.retrofit2:retrofit:2.9.0',
'org.greenrobot:eventbus:3.0.0',
'com.loopj.android:android-async-http:1.4.9',
], ],
// 私有依赖 B端自己使用的依赖(不输出给C端)只在B端使用的组件以implementation依赖 需要输出给C端的组件以compileOnly依赖 // 私有依赖 B端自己使用的依赖(不输出给C端)只在B端使用的组件以implementation依赖 需要输出给C端的组件以compileOnly依赖
privateImplementation : [ privateImplementation : [
// 一点内部SDK // 一点内部SDK
// 应用升级SDK // 应用升级SDK
'com.yidian.pmcomponents:appupdate:0.0.8', // 'com.yidian.pmcomponents:appupdate:0.0.8',
// 第三方SDK // 第三方SDK
// 友盟基础组件(必选) // 友盟基础组件(必选)
......
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