Commit 4fbede89 authored by yinjiacheng's avatar yinjiacheng

update 生活号认证流程首页、生活号个人认证页、生活号企业认证页TopBar

parent 5ab3c176
......@@ -38,9 +38,8 @@ class LifeAccountAuthActivity : BaseActivity<ActivityLifeAccountAuthBinding>(),
}
private fun initView() {
viewBind.layoutCommonHeader.ivBack.visibility = View.GONE
viewBind.layoutCommonHeader.tvTitle.text = resources.getString(R.string.join_life_circle)
// 此页面默认不可返回
viewBind.bvTopBar.setBackVisibility(false)
viewBind.viewPersonalAuth.setData(
resources.getString(R.string.personal_auth),
resources.getString(R.string.personal_auth_condition),
......@@ -54,15 +53,15 @@ class LifeAccountAuthActivity : BaseActivity<ActivityLifeAccountAuthBinding>(),
)
if (intent.getSerializableExtra(XRouterPathConstants.ParamsKey) != null) {
val paramsMap = intent.getSerializableExtra(XRouterPathConstants.ParamsKey) as HashMap<*, *>
var fromTag = paramsMap["from"] as String
val fromTag = paramsMap["from"] as String
if (fromTag == "auth") {
viewBind.layoutCommonHeader.ivBack.visibility = View.VISIBLE
// 如果由商户基本信息跳转至此页面 则此页面可返回
viewBind.bvTopBar.setBackVisibility(true)
}
}
}
private fun initListener() {
viewBind.layoutCommonHeader.ivBack.setOnClickListener(this)
viewBind.tvJoinStrategy.setOnClickListener(this)
viewBind.viewPersonalAuth.setOnClickListener(this)
viewBind.viewEnterpriseAuth.setOnClickListener(this)
......@@ -70,9 +69,6 @@ class LifeAccountAuthActivity : BaseActivity<ActivityLifeAccountAuthBinding>(),
override fun onClick(v: View?) {
when (v?.id) {
R.id.iv_back -> {
XPageManager.pop(null)
}
R.id.tv_join_strategy -> {
// TODO: 5/26/21 入驻攻略
}
......
......@@ -22,6 +22,7 @@ import com.yidian.shenghuoquan.newscontent.http.httpbean.AuthEnterpriseLegalIden
import com.yidian.shenghuoquan.newscontent.http.httpbean.AuthIndividualBusinessCompleteBean
import com.yidian.shenghuoquan.newscontent.http.httpbean.AuthMerchantCheckBean
import com.yidian.shenghuoquan.newscontent.ui.dialog.BottomSelectDialog
import com.yidian.shenghuoquan.newscontent.widget.CommonTopBarView
import com.yidian.shenghuoquan.newscontent.widget.LifeAccountAuthProcessView
import com.yidian.xpage.XPageManager
......@@ -31,337 +32,338 @@ import com.yidian.xpage.XPageManager
* description: 生活号企业认证
*/
class LifeAccountEnterpriseAuthActivity : BaseActivity<ActivityLifeAccountEnterpriseAuthBinding>(),
View.OnClickListener, BottomSelectAdapter.OnItemClickListener<BottomSelectBean>,
IAuthBusinessLicenseCommitCallback, IAuthEnterpriseLegalIdentityCommitCallback,
IAuthIndividualBusinessCompleteCallback {
View.OnClickListener, BottomSelectAdapter.OnItemClickListener<BottomSelectBean>,
IAuthBusinessLicenseCommitCallback, IAuthEnterpriseLegalIdentityCommitCallback,
IAuthIndividualBusinessCompleteCallback, CommonTopBarView.OnCommonTopBarBackCallback {
companion object {
companion object {
// 生活号id 个人生活号主动升级企业生活号的认证流程传入
const val EXTRA_LIFE_ACCOUNT_ID = "life_account_id"
// 生活号id 个人生活号主动升级企业生活号的认证流程传入
const val EXTRA_LIFE_ACCOUNT_ID = "life_account_id"
// 认证数据
const val EXTRA_AUTH_DATA = "authData"
}
// 认证数据
const val EXTRA_AUTH_DATA = "authData"
}
private val fragmentList: ArrayList<Fragment> by lazy {
arrayListOf(
LifeAccountBusinessLicenseAuthFragment(),
LifeAccountIDCardAuthFragment()
)
}
private val fragmentList: ArrayList<Fragment> by lazy {
arrayListOf(
LifeAccountBusinessLicenseAuthFragment(),
LifeAccountIDCardAuthFragment()
)
}
/**
* 当前显示的fragment
*/
private var curFragment: Fragment? = null
/**
* 当前显示的fragment
*/
private var curFragment: Fragment? = null
/**
* 个人生活号id 企业升级用
*/
private val personalLifeAccountId by lazy {
intent.getSerializableExtra(XRouterPathConstants.ParamsKey)?.let {
(it as HashMap<*, *>)[EXTRA_LIFE_ACCOUNT_ID]?.let { id ->
id as String
} ?: Hawk.get(HawkConfig.LifeAccountId, null)
}
/**
* 个人生活号id 企业升级用
*/
private val personalLifeAccountId by lazy {
intent.getSerializableExtra(XRouterPathConstants.ParamsKey)?.let {
(it as HashMap<*, *>)[EXTRA_LIFE_ACCOUNT_ID]?.let { id ->
id as String
} ?: Hawk.get(HawkConfig.LifeAccountId, null)
}
}
/**
* 认证数据 还原认证流程用
*/
private val authData by lazy {
intent.getSerializableExtra(XRouterPathConstants.ParamsKey)?.let {
(it as HashMap<*, *>)[EXTRA_AUTH_DATA]?.let { data ->
data as AuthMerchantCheckBean.Response
}
}
/**
* 认证数据 还原认证流程用
*/
private val authData by lazy {
intent.getSerializableExtra(XRouterPathConstants.ParamsKey)?.let {
(it as HashMap<*, *>)[EXTRA_AUTH_DATA]?.let { data ->
data as AuthMerchantCheckBean.Response
}
}
}
override fun createViewBinding(): ActivityLifeAccountEnterpriseAuthBinding {
return ActivityLifeAccountEnterpriseAuthBinding.inflate(layoutInflater)
}
override fun createViewBinding(): ActivityLifeAccountEnterpriseAuthBinding {
return ActivityLifeAccountEnterpriseAuthBinding.inflate(layoutInflater)
}
override fun getXPageName(): String {
return XRouterPathConstants.LIFE_ACCOUNT_ENTERPRISE_AUTH
}
override fun getXPageName(): String {
return XRouterPathConstants.LIFE_ACCOUNT_ENTERPRISE_AUTH
}
override fun init(savedInstanceState: Bundle?) {
super.init(savedInstanceState)
initView()
initListener()
initData()
}
override fun init(savedInstanceState: Bundle?) {
super.init(savedInstanceState)
initView()
initListener()
initData()
}
private fun initView() {
viewBind.viewCommonHeader.tvTitle.text = resources.getString(R.string.enterprise_auth)
viewBind.pvAuthProcess.setProcess(LifeAccountAuthProcessView.PROCESS_ENTERPRISE_QUALIFICATION)
}
private fun initView() {
viewBind.pvAuthProcess.setProcess(LifeAccountAuthProcessView.PROCESS_ENTERPRISE_QUALIFICATION)
}
private fun initListener() {
viewBind.viewCommonHeader.ivBack.setOnClickListener(this)
viewBind.svMerchantType.setOnClickListener(this)
viewBind.btnNext.setOnClickListener(this)
}
private fun initListener() {
viewBind.bvTopBar.setOnCommonTopBarCallback(this, null)
viewBind.svMerchantType.setOnClickListener(this)
viewBind.btnNext.setOnClickListener(this)
}
/**
* 检查是否可以进行下一步
*/
fun checkNextCondition() {
if (viewBind.pvAuthProcess.curProcess == LifeAccountAuthProcessView.PROCESS_ENTERPRISE_QUALIFICATION
&& LifeAccountAuthDataManager.merchantAuthData.merchantType != 0
&& LifeAccountAuthDataManager.merchantAuthData.isBusinessLicenseUpload
&& !LifeAccountAuthDataManager.merchantAuthData.registrationName.isNullOrEmpty()
&& !LifeAccountAuthDataManager.merchantAuthData.registrationCode.isNullOrEmpty()
) {
viewBind.btnNext.alpha = 1f
viewBind.btnNext.isEnabled = true
} else if (viewBind.pvAuthProcess.curProcess == LifeAccountAuthProcessView.PROCESS_ENTERPRISE_MANAGER
&& LifeAccountAuthDataManager.merchantAuthData.merchantType == Constant.TYPE_INDIVIDUAL_BUSINESS
&& LifeAccountAuthDataManager.personalAuthData.isFaceAuthPass
) {
viewBind.btnNext.alpha = 1f
viewBind.btnNext.isEnabled = true
} else if (viewBind.pvAuthProcess.curProcess == LifeAccountAuthProcessView.PROCESS_ENTERPRISE_MANAGER
&& LifeAccountAuthDataManager.merchantAuthData.merchantType == Constant.TYPE_COMMON_ENTERPRISE
&& LifeAccountAuthDataManager.personalAuthData.isIDCardPortraitFaceUpload
&& LifeAccountAuthDataManager.personalAuthData.isIDCardNationalEmblemFaceUpload
&& !LifeAccountAuthDataManager.personalAuthData.realName.isNullOrEmpty()
&& !LifeAccountAuthDataManager.personalAuthData.idCardNum.isNullOrEmpty()
&& !LifeAccountAuthDataManager.personalAuthData.phoneNum.isNullOrEmpty()
) {
viewBind.btnNext.alpha = 1f
viewBind.btnNext.isEnabled = true
} else {
viewBind.btnNext.alpha = 0.32f
viewBind.btnNext.isEnabled = false
}
/**
* 检查是否可以进行下一步
*/
fun checkNextCondition() {
if (viewBind.pvAuthProcess.curProcess == LifeAccountAuthProcessView.PROCESS_ENTERPRISE_QUALIFICATION
&& LifeAccountAuthDataManager.merchantAuthData.merchantType != 0
&& LifeAccountAuthDataManager.merchantAuthData.isBusinessLicenseUpload
&& !LifeAccountAuthDataManager.merchantAuthData.registrationName.isNullOrEmpty()
&& !LifeAccountAuthDataManager.merchantAuthData.registrationCode.isNullOrEmpty()
) {
viewBind.btnNext.alpha = 1f
viewBind.btnNext.isEnabled = true
} else if (viewBind.pvAuthProcess.curProcess == LifeAccountAuthProcessView.PROCESS_ENTERPRISE_MANAGER
&& LifeAccountAuthDataManager.merchantAuthData.merchantType == Constant.TYPE_INDIVIDUAL_BUSINESS
&& LifeAccountAuthDataManager.personalAuthData.isFaceAuthPass
) {
viewBind.btnNext.alpha = 1f
viewBind.btnNext.isEnabled = true
} else if (viewBind.pvAuthProcess.curProcess == LifeAccountAuthProcessView.PROCESS_ENTERPRISE_MANAGER
&& LifeAccountAuthDataManager.merchantAuthData.merchantType == Constant.TYPE_COMMON_ENTERPRISE
&& LifeAccountAuthDataManager.personalAuthData.isIDCardPortraitFaceUpload
&& LifeAccountAuthDataManager.personalAuthData.isIDCardNationalEmblemFaceUpload
&& !LifeAccountAuthDataManager.personalAuthData.realName.isNullOrEmpty()
&& !LifeAccountAuthDataManager.personalAuthData.idCardNum.isNullOrEmpty()
&& !LifeAccountAuthDataManager.personalAuthData.phoneNum.isNullOrEmpty()
) {
viewBind.btnNext.alpha = 1f
viewBind.btnNext.isEnabled = true
} else {
viewBind.btnNext.alpha = 0.32f
viewBind.btnNext.isEnabled = false
}
}
/**
* 禁止修改商户类型
*/
fun disableModifyMerchantType() {
viewBind.svMerchantType.enableSelect(false)
}
/**
* 禁止修改商户类型
*/
fun disableModifyMerchantType() {
viewBind.svMerchantType.enableSelect(false)
}
private fun initData() {
// 如果有已存在的认证流程则还原进度
authData?.let { LifeAccountAuthDataManager.generateMerchantAuthData(it) }
authData?.data_type?.let {
viewBind.svMerchantType.setContentResult(
if (it == Constant.TYPE_INDIVIDUAL_BUSINESS) {
Constant.ITEM_INDIVIDUAL_BUSINESSES
} else {
Constant.ITEM_COMMON_ENTERPRISE
}
)
private fun initData() {
// 如果有已存在的认证流程则还原进度
authData?.let { LifeAccountAuthDataManager.generateMerchantAuthData(it) }
authData?.data_type?.let {
viewBind.svMerchantType.setContentResult(
if (it == Constant.TYPE_INDIVIDUAL_BUSINESS) {
Constant.ITEM_INDIVIDUAL_BUSINESSES
} else {
Constant.ITEM_COMMON_ENTERPRISE
}
val bundle = Bundle()
bundle.putSerializable(LifeAccountBusinessLicenseAuthFragment.EXTRA_AUTH_DATA, authData)
fragmentList[0].arguments = bundle
switchFragment(fragmentList[0])
)
}
val bundle = Bundle()
bundle.putSerializable(LifeAccountBusinessLicenseAuthFragment.EXTRA_AUTH_DATA, authData)
fragmentList[0].arguments = bundle
switchFragment(fragmentList[0])
}
/**
* fragment切换
*/
private fun switchFragment(targetFragment: Fragment) {
when {
// 当前无fragment被添加
curFragment == null -> {
supportFragmentManager.beginTransaction()
.add(R.id.fragment_container, targetFragment)
.commit()
}
// 目标fragment已被添加
targetFragment.isAdded -> {
curFragment?.let {
supportFragmentManager.beginTransaction().hide(it).show(targetFragment)
.commit()
}
}
// 目前fragment没被添加
else -> {
curFragment?.let {
supportFragmentManager.beginTransaction().hide(it)
.add(R.id.fragment_container, targetFragment).commit()
}
}
/**
* fragment切换
*/
private fun switchFragment(targetFragment: Fragment) {
when {
// 当前无fragment被添加
curFragment == null -> {
supportFragmentManager.beginTransaction()
.add(R.id.fragment_container, targetFragment)
.commit()
}
// 目标fragment已被添加
targetFragment.isAdded -> {
curFragment?.let {
supportFragmentManager.beginTransaction().hide(it).show(targetFragment)
.commit()
}
curFragment = targetFragment
}
override fun onClick(v: View?) {
when (v?.id) {
R.id.iv_back -> {
if (viewBind.pvAuthProcess.curProcess == 0) {
// 当前是第一个fragment 则退出当前activity
XPageManager.pop(null)
} else {
viewBind.pvAuthProcess.setProcess(--viewBind.pvAuthProcess.curProcess)
if (viewBind.pvAuthProcess.curProcess == 0) {
viewBind.svMerchantType.enableSelect(true)
}
// 回退fragment
switchFragment(fragmentList[viewBind.pvAuthProcess.curProcess])
checkNextCondition()
}
}
R.id.sv_merchant_type -> {
// 弹出商户类型选择
BottomSelectDialog(
this,
this,
arrayListOf(
BottomSelectBean(Constant.ITEM_INDIVIDUAL_BUSINESSES),
BottomSelectBean(Constant.ITEM_COMMON_ENTERPRISE)
)
).show()
}
R.id.btn_next -> {
if (viewBind.pvAuthProcess.curProcess == LifeAccountAuthProcessView.PROCESS_ENTERPRISE_QUALIFICATION) {
// personalLifeAccountId不为null则是由个人生活号升级为企业生活号情况
// personalLifeAccountId为null则是直接进行企业认证情况
ApiService.authBusinessLicenseCommit(
this,
LifeAccountAuthDataManager.generateAuthBusinessLicenseCommitRequest(
personalLifeAccountId
)
)
} else if (viewBind.pvAuthProcess.curProcess == LifeAccountAuthProcessView.PROCESS_ENTERPRISE_MANAGER) {
if (LifeAccountAuthDataManager.merchantAuthData.merchantType == Constant.TYPE_INDIVIDUAL_BUSINESS) {
ApiService.authIndividualBusinessComplete(
this,
LifeAccountAuthDataManager.generateAuthIndividualBusinessCompleteRequest(
personalLifeAccountId
)
)
} else if (LifeAccountAuthDataManager.merchantAuthData.merchantType == Constant.TYPE_COMMON_ENTERPRISE) {
ApiService.authEnterpriseLegalIdentityCommit(
this,
LifeAccountAuthDataManager.generateAuthEnterpriseLegalIdentityCommitRequest(
personalLifeAccountId
)
)
}
}
}
}
// 目前fragment没被添加
else -> {
curFragment?.let {
supportFragmentManager.beginTransaction().hide(it)
.add(R.id.fragment_container, targetFragment).commit()
}
}
}
curFragment = targetFragment
}
override fun onItemClick(view: View, position: Int, data: BottomSelectBean) {
if (viewBind.svMerchantType.getCurSelectItem().isNotEmpty()) {
// 更换商户类型,清空营业执照图片、清空注册名称和注册码
(fragmentList[0] as LifeAccountBusinessLicenseAuthFragment).clearBusinessLicenseInfo()
override fun onClick(v: View?) {
when (v?.id) {
R.id.sv_merchant_type -> {
// 弹出商户类型选择
BottomSelectDialog(
this,
this,
arrayListOf(
BottomSelectBean(Constant.ITEM_INDIVIDUAL_BUSINESSES),
BottomSelectBean(Constant.ITEM_COMMON_ENTERPRISE)
)
).show()
}
R.id.btn_next -> {
if (viewBind.pvAuthProcess.curProcess == LifeAccountAuthProcessView.PROCESS_ENTERPRISE_QUALIFICATION) {
// personalLifeAccountId不为null则是由个人生活号升级为企业生活号情况
// personalLifeAccountId为null则是直接进行企业认证情况
ApiService.authBusinessLicenseCommit(
this,
LifeAccountAuthDataManager.generateAuthBusinessLicenseCommitRequest(
personalLifeAccountId
)
)
} else if (viewBind.pvAuthProcess.curProcess == LifeAccountAuthProcessView.PROCESS_ENTERPRISE_MANAGER) {
if (LifeAccountAuthDataManager.merchantAuthData.merchantType == Constant.TYPE_INDIVIDUAL_BUSINESS) {
ApiService.authIndividualBusinessComplete(
this,
LifeAccountAuthDataManager.generateAuthIndividualBusinessCompleteRequest(
personalLifeAccountId
)
)
} else if (LifeAccountAuthDataManager.merchantAuthData.merchantType == Constant.TYPE_COMMON_ENTERPRISE) {
ApiService.authEnterpriseLegalIdentityCommit(
this,
LifeAccountAuthDataManager.generateAuthEnterpriseLegalIdentityCommitRequest(
personalLifeAccountId
)
)
}
}
// 回显选择的商户类型
viewBind.svMerchantType.setContentResult(data.item)
// 保存选择的商户类型
LifeAccountAuthDataManager.merchantAuthData.merchantType =
if (data.item == Constant.ITEM_INDIVIDUAL_BUSINESSES) Constant.TYPE_INDIVIDUAL_BUSINESS else Constant.TYPE_COMMON_ENTERPRISE
// 检查下一步条件
checkNextCondition()
}
}
}
override fun authBusinessLicenseCommitSuccess(result: AuthBusinessLicenseCommitBean.Response?) {
// 营业执照提交成功
LifeAccountAuthDataManager.merchantAuthData.authRecordId = result?.enterprise_auth_record_id
viewBind.pvAuthProcess.setProcess(++viewBind.pvAuthProcess.curProcess)
viewBind.svMerchantType.enableSelect(false)
// 向身份信息fragment传参
val fragment = fragmentList[viewBind.pvAuthProcess.curProcess]
val bundle = Bundle()
bundle.putInt(
Constant.TYPE_AUTH,
LifeAccountAuthDataManager.merchantAuthData.merchantType
)
bundle.putSerializable(LifeAccountIDCardAuthFragment.EXTRA_AUTH_DATA, authData)
fragment.arguments = bundle
switchFragment(fragment)
override fun onItemClick(view: View, position: Int, data: BottomSelectBean) {
if (viewBind.svMerchantType.getCurSelectItem().isNotEmpty()) {
// 更换商户类型,清空营业执照图片、清空注册名称和注册码
(fragmentList[0] as LifeAccountBusinessLicenseAuthFragment).clearBusinessLicenseInfo()
}
// 回显选择的商户类型
viewBind.svMerchantType.setContentResult(data.item)
// 保存选择的商户类型
LifeAccountAuthDataManager.merchantAuthData.merchantType =
if (data.item == Constant.ITEM_INDIVIDUAL_BUSINESSES) Constant.TYPE_INDIVIDUAL_BUSINESS else Constant.TYPE_COMMON_ENTERPRISE
// 检查下一步条件
checkNextCondition()
}
override fun authBusinessLicenseCommitFailure(message: String?) {
Log.e(
Constant.LIFE_ACCOUNT_AUTH_TAG,
"request auth business license commit failure, message: $message"
)
}
override fun authBusinessLicenseCommitSuccess(result: AuthBusinessLicenseCommitBean.Response?) {
// 营业执照提交成功
LifeAccountAuthDataManager.merchantAuthData.authRecordId = result?.enterprise_auth_record_id
viewBind.pvAuthProcess.setProcess(++viewBind.pvAuthProcess.curProcess)
viewBind.svMerchantType.enableSelect(false)
// 向身份信息fragment传参
val fragment = fragmentList[viewBind.pvAuthProcess.curProcess]
val bundle = Bundle()
bundle.putInt(
Constant.TYPE_AUTH,
LifeAccountAuthDataManager.merchantAuthData.merchantType
)
bundle.putSerializable(LifeAccountIDCardAuthFragment.EXTRA_AUTH_DATA, authData)
fragment.arguments = bundle
switchFragment(fragment)
}
override fun authEnterpriseLegalIdentityCommitSuccess(result: AuthEnterpriseLegalIdentityCommitBean.Response?) {
// 本地保存生活号id
Hawk.put(HawkConfig.LifeAccountId, result?.life_account_id)
// 普通企业法人身份信息提交成功
XPageManager.push(
XRouterPathConstants.LIFE_ACCOUNT_ENTERPRISE_AUTH_COMPLETE,
hashMapOf(
Pair(
LifeAccountEnterpriseAuthCompleteActivity.REGISTRATION_NAME,
LifeAccountAuthDataManager.merchantAuthData.registrationName
),
Pair(
LifeAccountEnterpriseAuthCompleteActivity.REGISTRATION_CODE,
LifeAccountAuthDataManager.merchantAuthData.registrationCode
),
Pair(
LifeAccountEnterpriseAuthCompleteActivity.ID_CARD_NAME,
LifeAccountAuthDataManager.personalAuthData.realName
),
Pair(
LifeAccountEnterpriseAuthCompleteActivity.ID_CARD_NUM,
LifeAccountAuthDataManager.personalAuthData.idCardNum
),
Pair(
LifeAccountEnterpriseAuthCompleteActivity.EXTRA_LIFE_ACCOUNT_ID,
result?.life_account_id
)
)
)
}
override fun authBusinessLicenseCommitFailure(message: String?) {
Log.e(
Constant.LIFE_ACCOUNT_AUTH_TAG,
"request auth business license commit failure, message: $message"
)
}
override fun authEnterpriseLegalIdentityCommitFailure(message: String?) {
Log.e(
Constant.LIFE_ACCOUNT_AUTH_TAG,
"request auth enterprise legal identity commit failure, message: $message"
override fun authEnterpriseLegalIdentityCommitSuccess(result: AuthEnterpriseLegalIdentityCommitBean.Response?) {
// 本地保存生活号id
Hawk.put(HawkConfig.LifeAccountId, result?.life_account_id)
// 普通企业法人身份信息提交成功
XPageManager.push(
XRouterPathConstants.LIFE_ACCOUNT_ENTERPRISE_AUTH_COMPLETE,
hashMapOf(
Pair(
LifeAccountEnterpriseAuthCompleteActivity.REGISTRATION_NAME,
LifeAccountAuthDataManager.merchantAuthData.registrationName
),
Pair(
LifeAccountEnterpriseAuthCompleteActivity.REGISTRATION_CODE,
LifeAccountAuthDataManager.merchantAuthData.registrationCode
),
Pair(
LifeAccountEnterpriseAuthCompleteActivity.ID_CARD_NAME,
LifeAccountAuthDataManager.personalAuthData.realName
),
Pair(
LifeAccountEnterpriseAuthCompleteActivity.ID_CARD_NUM,
LifeAccountAuthDataManager.personalAuthData.idCardNum
),
Pair(
LifeAccountEnterpriseAuthCompleteActivity.EXTRA_LIFE_ACCOUNT_ID,
result?.life_account_id
)
}
)
)
}
override fun authIndividualBusinessCompleteSuccess(result: AuthIndividualBusinessCompleteBean.Response?) {
// 本地保存生活号id
Hawk.put(HawkConfig.LifeAccountId, result?.life_account_id)
// 个体工商户认证完成
XPageManager.push(
XRouterPathConstants.LIFE_ACCOUNT_ENTERPRISE_AUTH_COMPLETE,
hashMapOf(
Pair(
LifeAccountEnterpriseAuthCompleteActivity.REGISTRATION_NAME,
LifeAccountAuthDataManager.merchantAuthData.registrationName
),
Pair(
LifeAccountEnterpriseAuthCompleteActivity.REGISTRATION_CODE,
LifeAccountAuthDataManager.merchantAuthData.registrationCode
),
Pair(
LifeAccountEnterpriseAuthCompleteActivity.ID_CARD_NAME,
LifeAccountAuthDataManager.personalAuthData.realName
),
Pair(
LifeAccountEnterpriseAuthCompleteActivity.ID_CARD_NUM,
LifeAccountAuthDataManager.personalAuthData.idCardNum
),
Pair(
LifeAccountEnterpriseAuthCompleteActivity.EXTRA_LIFE_ACCOUNT_ID,
result?.life_account_id
)
)
)
}
override fun authEnterpriseLegalIdentityCommitFailure(message: String?) {
Log.e(
Constant.LIFE_ACCOUNT_AUTH_TAG,
"request auth enterprise legal identity commit failure, message: $message"
)
}
override fun authIndividualBusinessCompleteFailure(message: String?) {
Log.e(
Constant.LIFE_ACCOUNT_AUTH_TAG,
"request auth enterprise complete failure, message: $message"
override fun authIndividualBusinessCompleteSuccess(result: AuthIndividualBusinessCompleteBean.Response?) {
// 本地保存生活号id
Hawk.put(HawkConfig.LifeAccountId, result?.life_account_id)
// 个体工商户认证完成
XPageManager.push(
XRouterPathConstants.LIFE_ACCOUNT_ENTERPRISE_AUTH_COMPLETE,
hashMapOf(
Pair(
LifeAccountEnterpriseAuthCompleteActivity.REGISTRATION_NAME,
LifeAccountAuthDataManager.merchantAuthData.registrationName
),
Pair(
LifeAccountEnterpriseAuthCompleteActivity.REGISTRATION_CODE,
LifeAccountAuthDataManager.merchantAuthData.registrationCode
),
Pair(
LifeAccountEnterpriseAuthCompleteActivity.ID_CARD_NAME,
LifeAccountAuthDataManager.personalAuthData.realName
),
Pair(
LifeAccountEnterpriseAuthCompleteActivity.ID_CARD_NUM,
LifeAccountAuthDataManager.personalAuthData.idCardNum
),
Pair(
LifeAccountEnterpriseAuthCompleteActivity.EXTRA_LIFE_ACCOUNT_ID,
result?.life_account_id
)
)
)
}
override fun authIndividualBusinessCompleteFailure(message: String?) {
Log.e(
Constant.LIFE_ACCOUNT_AUTH_TAG,
"request auth enterprise complete failure, message: $message"
)
}
override fun onDoBack() {
// 返回上一步/上一页
if (viewBind.pvAuthProcess.curProcess == 0) {
// 当前是第一个fragment 则退出当前activity
XPageManager.pop(null)
} else {
viewBind.pvAuthProcess.setProcess(--viewBind.pvAuthProcess.curProcess)
if (viewBind.pvAuthProcess.curProcess == 0) {
viewBind.svMerchantType.enableSelect(true)
}
// 回退fragment
switchFragment(fragmentList[viewBind.pvAuthProcess.curProcess])
checkNextCondition()
}
}
}
......@@ -71,11 +71,10 @@ class LifeAccountPersonalAuthActivity :
}
private fun initView() {
viewBind.viewCommonHeader.tvTitle.text = resources.getString(R.string.personal_auth)
}
private fun initListener() {
viewBind.viewCommonHeader.ivBack.setOnClickListener(this)
viewBind.svOccupation.setOnClickListener(this)
viewBind.cbProtocol.setOnCheckedChangeListener(this)
viewBind.btnNext.setOnClickListener(this)
......@@ -119,7 +118,6 @@ class LifeAccountPersonalAuthActivity :
override fun onClick(v: View?) {
when (v?.id) {
R.id.iv_back -> XPageManager.pop(null)
R.id.sv_occupation -> {
XPageManager.push(XRouterPathConstants.CHOOSE_CAREER, null)
}
......
......@@ -19,81 +19,81 @@ import com.yidian.xpage.XPageManager
* description: 生活号名称修改
*/
class LifeAccountModifyNameActivity : BaseActivity<ActivityLifeAccountModifyNameBinding>(),
CommonTopBarView.OnCommonTopBarCallback,
LifeAccountAuthIdentityInfoEditView.OnLifeAccountAuthIdentityInfoEditViewCallback,
ICreateLifeAccountCallback {
companion object {
const val EXTRA_LIFE_ACCOUNT_ID = "life_account_id"
const val EXTRA_LIFE_ACCOUNT_NAME = "life_account_name"
}
private var lifeAccountId: String? = null
private var lifeAccountName: String? = null
override fun createViewBinding(): ActivityLifeAccountModifyNameBinding {
return ActivityLifeAccountModifyNameBinding.inflate(layoutInflater)
}
override fun getXPageName(): String {
return XRouterPathConstants.LIFE_ACCOUNT_MODIFY_NAME
}
override fun init(savedInstanceState: Bundle?) {
super.init(savedInstanceState)
initView()
initListener()
initData()
}
private fun initView() {
// 只允许输入中文并且最长20汉字
viewBind.evLifeAccountName.setInputFilters(InputFilterUtil.getChineseFilter(), InputFilter.LengthFilter(20))
}
private fun initListener() {
viewBind.bvTopBar.setOnCommonTopBarCallback(this)
viewBind.evLifeAccountName.setOnLifeAccountAuthIdentityInfoEditViewCallback(this)
CommonTopBarView.OnCommonTopBarActionCallback,
LifeAccountAuthIdentityInfoEditView.OnLifeAccountAuthIdentityInfoEditViewCallback,
ICreateLifeAccountCallback {
companion object {
const val EXTRA_LIFE_ACCOUNT_ID = "life_account_id"
const val EXTRA_LIFE_ACCOUNT_NAME = "life_account_name"
}
private var lifeAccountId: String? = null
private var lifeAccountName: String? = null
override fun createViewBinding(): ActivityLifeAccountModifyNameBinding {
return ActivityLifeAccountModifyNameBinding.inflate(layoutInflater)
}
override fun getXPageName(): String {
return XRouterPathConstants.LIFE_ACCOUNT_MODIFY_NAME
}
override fun init(savedInstanceState: Bundle?) {
super.init(savedInstanceState)
initView()
initListener()
initData()
}
private fun initView() {
// 只允许输入中文并且最长20汉字
viewBind.evLifeAccountName.setInputFilters(InputFilterUtil.getChineseFilter(), InputFilter.LengthFilter(20))
}
private fun initListener() {
viewBind.bvTopBar.setOnCommonTopBarCallback(null, this)
viewBind.evLifeAccountName.setOnLifeAccountAuthIdentityInfoEditViewCallback(this)
}
private fun initData() {
intent.getSerializableExtra(XRouterPathConstants.ParamsKey)?.let { params ->
(params as HashMap<*, *>).let {
lifeAccountId = it[EXTRA_LIFE_ACCOUNT_ID] as String
lifeAccountName = it[EXTRA_LIFE_ACCOUNT_NAME] as String
}
}
private fun initData() {
intent.getSerializableExtra(XRouterPathConstants.ParamsKey)?.let { params ->
(params as HashMap<*, *>).let {
lifeAccountId = it[EXTRA_LIFE_ACCOUNT_ID] as String
lifeAccountName = it[EXTRA_LIFE_ACCOUNT_NAME] as String
}
}
viewBind.evLifeAccountName.fillEditContent(lifeAccountName)
// 获取焦点弹出软键盘
viewBind.evLifeAccountName.requestEditTextFocus()
}
override fun onDoAction() {
// 请求接口检查并修改生活号名称
ApiService.createLifeAccount(
this,
hashMapOf(
Pair(EXTRA_LIFE_ACCOUNT_ID, lifeAccountId.toString()),
Pair(EXTRA_LIFE_ACCOUNT_NAME, viewBind.evLifeAccountName.getEditContent())
)
)
}
override fun onTextClear(from: LifeAccountAuthIdentityInfoEditView) {
}
override fun onTextChange(from: LifeAccountAuthIdentityInfoEditView, text: String) {
}
override fun createLifeAccountCallback(result: Boolean) {
if (result) {
// 生活号名称修改成功
XPageManager.pop(null)
} else {
// 生活号名称修改失败 提示
viewBind.evLifeAccountName.showErrorTips(resources.getString(R.string.life_account_name_already_exist))
}
viewBind.evLifeAccountName.fillEditContent(lifeAccountName)
// 获取焦点弹出软键盘
viewBind.evLifeAccountName.requestEditTextFocus()
}
override fun onDoAction() {
// 请求接口检查并修改生活号名称
ApiService.createLifeAccount(
this,
hashMapOf(
Pair(EXTRA_LIFE_ACCOUNT_ID, lifeAccountId.toString()),
Pair(EXTRA_LIFE_ACCOUNT_NAME, viewBind.evLifeAccountName.getEditContent())
)
)
}
override fun onTextClear(from: LifeAccountAuthIdentityInfoEditView) {
}
override fun onTextChange(from: LifeAccountAuthIdentityInfoEditView, text: String) {
}
override fun createLifeAccountCallback(result: Boolean) {
if (result) {
// 生活号名称修改成功
XPageManager.pop(null)
} else {
// 生活号名称修改失败 提示
viewBind.evLifeAccountName.showErrorTips(resources.getString(R.string.life_account_name_already_exist))
}
}
\ No newline at end of file
}
}
......@@ -33,7 +33,7 @@ class MerchantCenterActivity : BaseActivity<ActivityMerchantCenterBinding>(),
IGetConfigListCallback, IGetLifeAccountListCallback, MerchantSwitchDialog.OnMerchantSwitchCallback,
LifeAccountLabelView.OnLifeAccountLabelCallback, IGetLifeAccountInfoByIdCallback,
MerchantCenterBottomHintDialog.OnMerchantCenterBottomHintCallback, IAuthMerchantCheckCallback,
MerchantServiceFunctionAdapter.OnItemClickListener, CommonTopBarView.OnCommonTopBarCallback {
MerchantServiceFunctionAdapter.OnItemClickListener, CommonTopBarView.OnCommonTopBarActionCallback {
companion object {
// 传递的生活号信息
......
......@@ -30,7 +30,15 @@ class CommonTopBarView @JvmOverloads constructor(
)
}
private var callback: OnCommonTopBarCallback? = null
/**
* 返回按钮点击回调
*/
private var backCallback: OnCommonTopBarBackCallback? = null
/**
* 操作按钮点击回调
*/
private var actionCallback: OnCommonTopBarActionCallback? = null
init {
val typeArray = context.obtainStyledAttributes(attrs, R.styleable.CommonTopBarView)
......@@ -62,20 +70,36 @@ class CommonTopBarView @JvmOverloads constructor(
override fun onClick(v: View?) {
if (v?.id == R.id.iv_back) {
XPageManager.pop(null)
// 若没有设置返回点击回调则默认pop
backCallback?.onDoBack() ?: XPageManager.pop(null)
} else if (v?.id == R.id.tv_action) {
callback?.onDoAction()
actionCallback?.onDoAction()
}
}
fun setOnCommonTopBarCallback(callback: OnCommonTopBarCallback) {
this.callback = callback
/**
* 设置回调
* @param backCallback 返回按钮点击回调
* @param actionCallback 操作按钮点击回调
*/
fun setOnCommonTopBarCallback(backCallback: OnCommonTopBarBackCallback?, actionCallback: OnCommonTopBarActionCallback?) {
this.backCallback = backCallback
this.actionCallback = actionCallback
}
interface OnCommonTopBarCallback {
interface OnCommonTopBarActionCallback {
/**
* 操作回调
* 操作按钮回调
*/
fun onDoAction()
}
interface OnCommonTopBarBackCallback {
/**
* 返回按钮回调
*/
fun onDoBack()
}
}
......@@ -2,15 +2,14 @@
<com.yidian.nightmode.widget.YdConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<include
android:id="@+id/layout_common_header"
layout="@layout/layout_common_header"
<com.yidian.shenghuoquan.newscontent.widget.CommonTopBarView
android:id="@+id/bv_top_bar"
android:layout_width="match_parent"
android:layout_height="42dp"
android:layout_marginTop="10dp"
app:layout_constraintStart_toStartOf="parent"
android:layout_height="wrap_content"
app:CommonTopBarView_title_text="@string/join_life_circle"
app:layout_constraintTop_toTopOf="parent" />
<com.yidian.nightmode.widget.YdTextView
......@@ -24,7 +23,7 @@
android:textColor="#DE000000"
android:textSize="15sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/layout_common_header" />
app:layout_constraintTop_toBottomOf="@id/bv_top_bar" />
<com.yidian.nightmode.widget.YdTextView
android:id="@+id/tv_provide_services"
......
......@@ -2,15 +2,14 @@
<com.yidian.nightmode.widget.YdConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<include
android:id="@+id/view_common_header"
layout="@layout/layout_common_header"
<com.yidian.shenghuoquan.newscontent.widget.CommonTopBarView
android:id="@+id/bv_top_bar"
android:layout_width="match_parent"
android:layout_height="42dp"
android:layout_marginTop="10dp"
app:layout_constraintStart_toStartOf="parent"
android:layout_height="wrap_content"
app:CommonTopBarView_title_text="@string/enterprise_auth"
app:layout_constraintTop_toTopOf="parent" />
<com.yidian.shenghuoquan.newscontent.widget.LifeAccountAuthProcessView
......@@ -19,7 +18,7 @@
android:layout_height="61dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/view_common_header" />
app:layout_constraintTop_toBottomOf="@id/bv_top_bar" />
<com.yidian.shenghuoquan.newscontent.widget.LifeAccountAuthSelectView
android:id="@+id/sv_merchant_type"
......
......@@ -2,15 +2,14 @@
<com.yidian.nightmode.widget.YdConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<include
android:id="@+id/view_common_header"
layout="@layout/layout_common_header"
<com.yidian.shenghuoquan.newscontent.widget.CommonTopBarView
android:id="@+id/bv_top_bar"
android:layout_width="match_parent"
android:layout_height="42dp"
android:layout_marginTop="10dp"
app:layout_constraintStart_toStartOf="parent"
android:layout_height="wrap_content"
app:CommonTopBarView_title_text="@string/personal_auth"
app:layout_constraintTop_toTopOf="parent" />
<com.yidian.shenghuoquan.newscontent.widget.LifeAccountAuthSelectView
......@@ -19,7 +18,7 @@
android:layout_height="58dp"
app:LifeAccountAuthSelectView_content_hint_text="@string/describe_yourself"
app:LifeAccountAuthSelectView_name_text="@string/occupation_label"
app:layout_constraintTop_toBottomOf="@id/view_common_header" />
app:layout_constraintTop_toBottomOf="@id/bv_top_bar" />
<com.yidian.nightmode.widget.YdFrameLayout
android:id="@+id/fragment_container"
......
<?xml version="1.0" encoding="utf-8"?>
<com.yidian.nightmode.widget.YdConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app='http://schemas.android.com/apk/res-auto'
android:layout_width="match_parent"
android:layout_height="@dimen/toolbar_height"
android:fitsSystemWindows="true">
<com.yidian.nightmode.widget.YdImageView
android:id="@+id/iv_back"
android:layout_width="27dp"
android:layout_height="27dp"
android:layout_marginStart="19dp"
android:src="@drawable/icon_back"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.yidian.nightmode.widget.YdTextView
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:includeFontPadding="false"
android:textColor="#FF333333"
android:textSize="17sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</com.yidian.nightmode.widget.YdConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/addressBar"
android:layout_width="match_parent"
android:layout_height="44dp"
android:background="@color/white">
<ImageButton
android:id="@+id/back"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_centerVertical="true"
android:background="@null"
android:paddingStart="@dimen/back_button_padding_left"
android:paddingEnd="@dimen/back_button_padding_right"
android:scaleType="fitCenter"
android:src="@drawable/selector_big_back_black_button" />
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginStart="5dp"
android:textColor="#333333"
android:textSize="18sp" />
</RelativeLayout>
\ No newline at end of file
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