Commit 88be24c1 authored by zhenghongbin's avatar zhenghongbin

add Merge branch 'dev' of https://git.yidian-inc.com:8021/bp/ShenghuoquanBusiness into dev

* 'dev' of https://git.yidian-inc.com:8021/bp/ShenghuoquanBusiness:
  add 创建生活号页面逻辑修改
  add 个人认证、身份证信息UI

# Conflicts:
#	CommonLib/Common/src/main/java/com/yidian/common/http/URLs.kt
#	Components/newscontent/src/main/java/com/yidian/shenghuoquan/newscontent/http/CommonService.kt
parents 6aa68eee 256498b2
......@@ -33,5 +33,7 @@ class XRouterPathConstants {
const val LIFE_ACCOUNT_AUTH = "/lifeAccountAuth"
const val ID_CARD_TEST = "/idCardTest"
const val LIFE_ACCOUNT_ENTERPRISE_CERTIFICATION = "/lifeAccountEnterpriseCertification"
const val LIFE_ACCOUNT_PERSONAL_AUTH = "/lifeAccountPersonalAuth"
const val LIFE_ACCOUNT_CREATE = "/createLiveAccountActivity"
}
}
\ No newline at end of file
......@@ -53,5 +53,6 @@ class URLs {
const val sendMsgCode = "/user/user/send_sms_code"
const val mobileLogin = "/user/user/login"
const val accountList = "/merchant/auth/account_list"
const val createLifeAccount = "/merchant/enterprise/create_life"
}
}
\ No newline at end of file
......@@ -121,6 +121,13 @@
<activity android:name=".ui.LifeAccountEnterpriseCertificationActivity"
android:theme="@style/Transparent" />
<activity
android:name=".ui.LiveAccountCreateActivity"
android:theme="@style/Transparent"
android:windowSoftInputMode="stateHidden|adjustResize"/>
<activity android:name=".ui.LifeAccountPersonalAuthActivity"
android:theme="@style/Transparent" />
</application>
......
......@@ -22,6 +22,7 @@ import com.yidian.common.XRouterPathConstants.Companion.ID_CARD_TEST
import com.yidian.common.XRouterPathConstants.Companion.LIFE_ACCOUNT_AUTH
import com.yidian.common.XRouterPathConstants.Companion.LIFE_ACCOUNT_ENTERPRISE_CERTIFICATION
import com.yidian.common.XRouterPathConstants.Companion.LIFE_ACCOUNT_IDENTITY
import com.yidian.common.XRouterPathConstants.Companion.LIFE_ACCOUNT_PERSONAL_AUTH
import com.yidian.common.XRouterPathConstants.Companion.LOGIN_LIFE_CIRCLE
import com.yidian.common.XRouterPathConstants.Companion.NEWS_CONTENT
import com.yidian.common.XRouterPathConstants.Companion.NEWS_MAIN
......@@ -170,6 +171,18 @@ class NewsContentApplication : YdBaseApplication() {
}
}),
XPageNode(LIFE_ACCOUNT_PERSONAL_AUTH, XPageNodePageType.NATIVE, object : XPageHandler {
override fun handler(params: Map<String, Any?>?) {
val intent = Intent()
if (params != null) {
intent.putExtra(XRouterPathConstants.ParamsKey, params as HashMap)
}
intent.setClass(context, LifeAccountPersonalAuthActivity::class.java)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
context.startActivity(intent)
}
}),
XPageNode(NEWS_CONTENT, XPageNodePageType.NATIVE, object : XPageHandler {
override fun handler(params: Map<String, Any?>?) {
val intent = Intent()
......
package com.yidian.shenghuoquan.newscontent.bean
class CreateLifeAccountBean {
/**
* life_account_name 是 str 生活号名称
* code 是 str 企业社会统一识别码
* user_id 是 str 用id
*/
data class Request(
var life_account_name:String,
var code:String,
var user_id:String
)
}
\ No newline at end of file
package com.yidian.shenghuoquan.newscontent.bean
interface ICreateLifeAccountCallback {
/**
* @param result 创建生活号结果 true 成功过,false 失败
*/
fun createLifeAccountCallback(result:Boolean)
}
\ No newline at end of file
......@@ -13,7 +13,9 @@ import com.yidian.common.http.TransformUtil
import com.yidian.common.http.httpbean.WebResult
import com.yidian.common.utils.ToolsUtil
import com.yidian.http.ServiceFactory
import com.yidian.shenghuoquan.newscontent.bean.CreateLifeAccountBean
import com.yidian.shenghuoquan.newscontent.bean.DynamicExpressionBean
import com.yidian.shenghuoquan.newscontent.bean.ICreateLifeAccountCallback
import com.yidian.shenghuoquan.newscontent.http.httpbean.*
import com.yidian.xarc.xbrid.XBridManager
import okhttp3.MultipartBody
......@@ -611,6 +613,20 @@ class ApiService {
})
}
fun createLifeAccount(callback:ICreateLifeAccountCallback,requestParams:CreateLifeAccountBean.Request){
val paramsMap = HttpParamsUtils.getParamsMap()
ServiceFactory.getInstance().createService(CommonService::class.java)
.createLifeAccount(paramsMap,requestParams)
.compose(TransformUtil.defaultSchedulers())
.subscribe(object :HttpResultSubscriber<Any?>(){
override fun onSuccess(result: HttpResult<Any?>?) {
callback.createLifeAccountCallback(true)
}
override fun onFailer(result: HttpResult<Any?>?) {
callback.createLifeAccountCallback(false)
}
})
}
}
}
......@@ -3,6 +3,7 @@ package com.yidian.shenghuoquan.newscontent.http
import com.yidian.common.cardutils.bean.PolymerCommonCardBean
import com.yidian.common.http.HttpResult
import com.yidian.common.http.URLs
import com.yidian.shenghuoquan.newscontent.bean.CreateLifeAccountBean
import com.yidian.shenghuoquan.newscontent.http.httpbean.*
import io.reactivex.rxjava3.core.Observable
import okhttp3.MultipartBody
......@@ -135,4 +136,8 @@ interface CommonService {
@GET(URLs.accountList)
fun getAccountList(@QueryMap commonParams: Map<String, String>): Observable<HttpResult<ArrayList<AccountItemBean>?>>
@Headers("Content-Type: application/json")
@POST(URLs.createLifeAccount)
fun createLifeAccount(@QueryMap commonParams: Map<String, String>,@Body requestParams: CreateLifeAccountBean.Request) :Observable<HttpResult<Any?>>
}
\ No newline at end of file
package com.yidian.shenghuoquan.newscontent.ui
import com.yidian.common.base.BaseActivity
import com.yidian.shenghuoquan.newscontent.databinding.ActivityCreateAccountBinding
class CreateAccountActivity :BaseActivity<ActivityCreateAccountBinding>(){
override fun createViewBinding(): ActivityCreateAccountBinding {
return ActivityCreateAccountBinding.inflate(layoutInflater)
}
override fun getXPageName(): String {
return "create_account"
}
}
\ No newline at end of file
......@@ -50,7 +50,7 @@ class LifeAccountIdentityActivity : BaseActivity<ActivityLifeAccountIdentityBind
if (paramsMap != null) {
paramsMap as HashMap<String, Any?>
val accountList = paramsMap["accountList"]
}
val data: List<LifeAccountIdentityBean> =
listOf(
......
package com.yidian.shenghuoquan.newscontent.ui
import android.os.Bundle
import android.view.View
import com.yidian.common.XRouterPathConstants
import com.yidian.common.base.BaseActivity
import com.yidian.shenghuoquan.newscontent.R
import com.yidian.shenghuoquan.newscontent.databinding.ActivityLifeAccountPersonalAuthBinding
import com.yidian.shenghuoquan.newscontent.ui.auth.LifeAccountIDCardAuthFragment
import com.yidian.xpage.XPageManager
/**
* author: yinjiacheng
* date: 5/26/21 7:38 PM
* description: 生活号个人认证
*/
class LifeAccountPersonalAuthActivity : BaseActivity<ActivityLifeAccountPersonalAuthBinding>(),
View.OnClickListener {
override fun createViewBinding(): ActivityLifeAccountPersonalAuthBinding {
return ActivityLifeAccountPersonalAuthBinding.inflate(layoutInflater)
}
override fun getXPageName(): String {
return XRouterPathConstants.LIFE_ACCOUNT_PERSONAL_AUTH
}
override fun init(savedInstanceState: Bundle?) {
super.init(savedInstanceState)
supportFragmentManager.beginTransaction()
.add(R.id.fragment_container, LifeAccountIDCardAuthFragment()).commit()
initView()
initListener()
}
private fun initView() {
viewBind.viewCommonHeader.tvTitle.text = resources.getString(R.string.personal_auth)
}
private fun initListener() {
viewBind.viewCommonHeader.ivBack.setOnClickListener(this)
viewBind.ivProfessionalLabelChoose.setOnClickListener(this)
}
override fun onClick(v: View?) {
when (v?.id) {
R.id.iv_back -> XPageManager.pop(null)
R.id.iv_professional_label_choose -> {
// TODO: 5/27/21 跳转职业标签选择
}
}
}
}
\ No newline at end of file
package com.yidian.shenghuoquan.newscontent.ui
import android.annotation.SuppressLint
import android.content.Intent
import android.os.Bundle
import android.text.Editable
import androidx.core.view.isVisible
import com.yidian.common.XRouterPathConstants.Companion.LIFE_ACCOUNT_CREATE
import com.yidian.common.base.BaseActivity
import com.yidian.shenghuoquan.newscontent.R
import com.yidian.shenghuoquan.newscontent.bean.ICreateLifeAccountCallback
import com.yidian.shenghuoquan.newscontent.databinding.ActivityCreateAccountBinding
import com.yidian.shenghuoquan.newscontent.utils.TextWatcherAdapter
class LiveAccountCreateActivity :BaseActivity<ActivityCreateAccountBinding>(),ICreateLifeAccountCallback{
override fun createViewBinding(): ActivityCreateAccountBinding {
return ActivityCreateAccountBinding.inflate(layoutInflater)
}
override fun getXPageName(): String {
return LIFE_ACCOUNT_CREATE
}
private val accountMaxLength = 40
override fun init(savedInstanceState: Bundle?) {
super.init(savedInstanceState)
initView()
initListener()
initData()
}
private fun initData() {
setUserName("兰小花","15800003242")
}
private fun initView() {
viewBind.btnCreateAccount.alpha = 0.32f
viewBind.btnCreateAccount.isEnabled = false
//设置最大的名称限制
viewBind.etAccount.maxHeight = accountMaxLength+1
}
private fun initListener() {
viewBind.ivBack.setOnClickListener { finish() }
viewBind.etAccount.addTextChangedListener(object :TextWatcherAdapter(){
override fun afterTextChanged(s: Editable?) {
if (s==null) return
checkAccount(s.toString())
}
})
viewBind.btnCreateAccount.setOnClickListener {
createNewAccount()
}
}
private fun createNewAccount() {
// TODO: 2021/5/26 创建生活号
//模拟网络请求成功
// ApiService.createLifeAccount(this,request)
viewBind.btnCreateAccount.postDelayed({
startActivity(Intent(this@LiveAccountCreateActivity,LifeNumberActivity::class.java))
},2000L)
}
@SuppressLint("SetTextI18n")
private fun setUserName(name:String, number:String){
val numberFormat = formatNumber(number)
viewBind.tvUserName.text="$name $numberFormat"
}
private fun formatNumber(number: String):String{
return number.replace("(\\d{3})\\d{4}(\\d{4})".toRegex(), "$1****$2")
}
private fun checkAccount(s: String) {
if (s.isEmpty()){
viewBind.btnCreateAccount.alpha = 0.32f
viewBind.btnCreateAccount.isEnabled = false
viewBind.tvErrorTips.isVisible = false
viewBind.vDivider.setBackgroundResource(R.color.divider_white)
return
}
if (s.length>accountMaxLength){
viewBind.btnCreateAccount.alpha = 0.32f
viewBind.btnCreateAccount.isEnabled = false
viewBind.tvErrorTips.isVisible = true
viewBind.etAccount.setTextColor(resources.getColor(R.color.red_account_tips))
viewBind.vDivider.setBackgroundResource(R.color.red_account_tips)
}else{
viewBind.btnCreateAccount.alpha = 1f
viewBind.btnCreateAccount.isEnabled = true
viewBind.tvErrorTips.isVisible = false
viewBind.etAccount.setTextColor(resources.getColor(R.color.gray_333))
viewBind.vDivider.setBackgroundResource(R.color.divider_white)
}
}
override fun createLifeAccountCallback(result: Boolean) {
//创建生活号的回调
if (result){
//todo 创建成功 页面跳转
}else{
// todo 创建失败,失败逻辑
}
}
}
\ No newline at end of file
......@@ -35,7 +35,7 @@ class TempListActivity : BaseActivity<ActivityTempListBinding>() {
startActivity(Intent(this@TempListActivity, LifeAccountEnterpriseCertificationActivity::class.java))
}
viewBind.btCreateAccount.setOnClickListener {
startActivity(Intent(this@TempListActivity, CreateAccountActivity::class.java))
startActivity(Intent(this@TempListActivity, LiveAccountCreateActivity::class.java))
}
}
}
\ No newline at end of file
package com.yidian.shenghuoquan.newscontent.ui.auth
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.yidian.common.base.BaseFragment
import com.yidian.shenghuoquan.newscontent.R
import com.yidian.shenghuoquan.newscontent.databinding.FragmentLifeAccountIdCardAuthBinding
/**
* author: yinjiacheng
* date: 5/26/21 7:49 PM
* description: 生活号身份证认证
*/
class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuthBinding>(),
View.OnClickListener {
override fun createViewBinding(
inflater: LayoutInflater,
container: ViewGroup?
): FragmentLifeAccountIdCardAuthBinding {
return FragmentLifeAccountIdCardAuthBinding.inflate(layoutInflater, container, false)
}
override fun init(savedInstanceState: Bundle?) {
super.init(savedInstanceState)
initView()
initListener()
}
private fun initView() {
}
private fun initListener() {
viewBinding.ivIdCardPortraitFace.setOnClickListener(this)
viewBinding.ivIdCardNationalEmblemFace.setOnClickListener(this)
viewBinding.ivFaceAuthStart.setOnClickListener(this)
viewBinding.btnNext.setOnClickListener(this)
}
override fun onClick(v: View?) {
when (v?.id) {
R.id.iv_id_card_portrait_face -> {
// TODO: 5/27/21 上传身份证人像面
}
R.id.iv_id_card_national_emblem_face -> {
// TODO: 5/27/21 上传身份证国徽面
}
R.id.iv_face_auth_start -> {
// TODO: 5/27/21 跳转人脸认证
}
R.id.btn_next -> {
// TODO: 5/27/21 执行认证逻辑
}
}
}
}
\ No newline at end of file
package com.yidian.shenghuoquan.newscontent.utils
import android.text.Editable
import android.text.TextWatcher
abstract class TextWatcherAdapter: TextWatcher {
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
}
override fun afterTextChanged(s: Editable?) {
}
}
\ No newline at end of file
package com.yidian.shenghuoquan.newscontent.widget
import android.content.Context
import android.text.Editable
import android.text.TextUtils
import android.text.TextWatcher
import android.util.AttributeSet
import android.view.View
import com.yidian.nightmode.widget.YdConstraintLayout
import com.yidian.shenghuoquan.newscontent.R
import com.yidian.shenghuoquan.newscontent.databinding.ViewLifeAccountAuthEditBinding
/**
* author: yinjiacheng
* date: 5/27/21 2:12 PM
* description: 生活号认证 身份证信息录入
*/
class LifeAccountAuthEditView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyle: Int = 0
) : YdConstraintLayout(context, attrs, defStyle), View.OnClickListener, TextWatcher {
private val viewBinding: ViewLifeAccountAuthEditBinding = ViewLifeAccountAuthEditBinding.bind(
View.inflate(
getContext(),
R.layout.view_life_account_auth_edit,
this
)
)
init {
val typedArray = context.obtainStyledAttributes(attrs, R.styleable.LifeAccountAuthEditView)
viewBinding.tvContent.text =
typedArray.getText(R.styleable.LifeAccountAuthEditView_LifeAccountAuthEditView_content_text)
viewBinding.etContent.hint =
typedArray.getText(R.styleable.LifeAccountAuthEditView_LifeAccountAuthEditView_hint_text)
typedArray.recycle()
viewBinding.ivClear.setOnClickListener(this)
viewBinding.etContent.addTextChangedListener(this)
}
/**
* 展示错误提示
*/
fun showErrorTips(tips: String) {
viewBinding.tvErrorTips.text = tips
}
override fun onClick(v: View?) {
if (v?.id == R.id.iv_clear) {
// 清除输入框中的内容
viewBinding.etContent.setText("")
}
}
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
}
override fun afterTextChanged(s: Editable?) {
// 处理一键清除按钮
viewBinding.ivClear.visibility = if (TextUtils.isEmpty(s)) View.GONE else View.VISIBLE
}
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="0"
android:endColor="#FF3693FF"
android:startColor="#FF1751F1"
android:type="linear" />
<corners android:radius="21dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@mipmap/icon_protocol_unchecked" android:state_checked="false" />
<item android:drawable="@mipmap/icon_protocol_checked" android:state_checked="true" />
</selector>
\ No newline at end of file
......@@ -20,10 +20,15 @@
android:id="@+id/iv_back"
android:layout_width="28dp"
android:layout_height="28dp"
android:paddingStart="10dp"
android:paddingEnd="10dp"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:layout_gravity="center_vertical"
android:layout_marginStart="20dp"
android:scaleType="centerCrop"
android:src="@drawable/big_back"/>
android:src="@drawable/big_back"
tools:ignore="ContentDescription" />
<TextView
android:id="@+id/tv_title"
......@@ -51,6 +56,11 @@
android:layout_height="60dp"
android:layout_marginEnd="20dp"
android:layout_marginStart="20dp"
android:background="@null"
android:textSize="16sp"
android:textCursorDrawable="@drawable/comment_dialog_cursor"
android:textColorHint="@color/account_hint"
android:textColor="@color/gray_333"
android:gravity="center_vertical"
android:hint="@string/account_create_tips" />
<View
......@@ -68,7 +78,7 @@
android:paddingBottom="6dp"
android:paddingTop="6dp"
android:text="@string/account_error_tips"
android:textColor="#FF3A3A"
android:textColor="@color/red_account_tips"
android:textSize="12sp"
android:visibility="gone"
tools:visibility="visible" />
......@@ -90,7 +100,7 @@
android:layout_height="60dp"
android:gravity="center_vertical"
android:paddingStart="20dp"
android:text="@string/account_manager"
tools:text="蓝小花15800000001"
android:textColor="@color/gray_333"
android:textSize="16sp"
android:textStyle="bold"
......@@ -118,7 +128,7 @@
android:layout_marginBottom="34dp"
android:textSize="18sp"
android:gravity="center"
android:alpha="0.68"
android:alpha="0.32"
android:textColor="@color/white"
android:text="@string/create_account"
android:layout_gravity="center_horizontal|bottom"
......
<?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="match_parent">
<include
android:id="@+id/view_common_header"
layout="@layout/layout_common_header"
android:layout_width="match_parent"
android:layout_height="42dp"
android:layout_marginTop="10dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.yidian.nightmode.widget.YdRelativeLayout
android:id="@+id/rl_professional_label"
android:layout_width="match_parent"
android:layout_height="58dp"
android:paddingStart="19dp"
android:paddingEnd="12dp"
app:layout_constraintTop_toBottomOf="@id/view_common_header">
<com.yidian.nightmode.widget.YdTextView
android:id="@+id/tv_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:includeFontPadding="false"
android:text="@string/professional_label"
android:textColor="#FF333333"
android:textSize="15sp" />
<com.yidian.nightmode.widget.YdTextView
android:id="@+id/tv_professional_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginStart="23dp"
android:layout_toEndOf="@id/tv_content"
android:hint="@string/describe_yourself"
android:includeFontPadding="false"
android:textColor="#FF333333"
android:textColorHint="#FFC2C2C2"
android:textSize="15sp" />
<com.yidian.nightmode.widget.YdImageView
android:id="@+id/iv_professional_label_choose"
android:layout_width="23dp"
android:layout_height="23dp"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:src="@mipmap/icon_next" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_alignParentBottom="true"
android:background="#FFF2F2F2" />
</com.yidian.nightmode.widget.YdRelativeLayout>
<com.yidian.nightmode.widget.YdFrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/rl_professional_label" />
</com.yidian.nightmode.widget.YdConstraintLayout>
\ No newline at end of file
......@@ -157,5 +157,10 @@
android:text="《隐私政策》"/>
</LinearLayout>
<Button
android:layout_marginTop="20dp"
android:id="@+id/btn_open_account"
android:text="打开创建生活号页面"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
\ No newline at end of file
<?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="match_parent">
<com.yidian.nightmode.widget.YdTextView
android:id="@+id/tv_id_card_type"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="19dp"
android:layout_marginTop="17dp"
android:includeFontPadding="false"
android:text="@string/chinese_id_card"
android:textColor="#FF333333"
android:textSize="15sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.yidian.nightmode.widget.YdImageView
android:id="@+id/iv_id_card_portrait_face"
android:layout_width="156dp"
android:layout_height="97dp"
android:layout_marginStart="19dp"
android:layout_marginTop="17dp"
android:src="@mipmap/img_id_card_portrait"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_id_card_type" />
<com.yidian.nightmode.widget.YdImageView
android:id="@+id/iv_id_card_national_emblem_face"
android:layout_width="156dp"
android:layout_height="97dp"
android:layout_marginEnd="19dp"
android:src="@mipmap/img_id_card_national_emblem"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/iv_id_card_portrait_face" />
<com.yidian.nightmode.widget.YdTextView
android:id="@+id/tv_upload_portrait_face_guide"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:includeFontPadding="false"
android:text="@string/upload_portrait_face"
android:textColor="#FF999999"
android:textSize="12sp"
app:layout_constraintEnd_toEndOf="@id/iv_id_card_portrait_face"
app:layout_constraintStart_toStartOf="@id/iv_id_card_portrait_face"
app:layout_constraintTop_toBottomOf="@id/iv_id_card_portrait_face" />
<com.yidian.nightmode.widget.YdTextView
android:id="@+id/tv_upload_national_emblem_face_guide"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:includeFontPadding="false"
android:text="@string/upload_national_emblem_face"
android:textColor="#FF999999"
android:textSize="12sp"
app:layout_constraintEnd_toEndOf="@id/iv_id_card_national_emblem_face"
app:layout_constraintStart_toStartOf="@id/iv_id_card_national_emblem_face"
app:layout_constraintTop_toBottomOf="@id/iv_id_card_national_emblem_face" />
<com.yidian.shenghuoquan.newscontent.widget.LifeAccountAuthEditView
android:id="@+id/ev_real_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="19dp"
app:LifeAccountAuthEditView_content_text="@string/real_name"
app:LifeAccountAuthEditView_hint_text="@string/input_real_name"
app:layout_constraintTop_toBottomOf="@id/tv_upload_portrait_face_guide" />
<com.yidian.shenghuoquan.newscontent.widget.LifeAccountAuthEditView
android:id="@+id/ev_id_card_number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:LifeAccountAuthEditView_content_text="@string/id_card_number"
app:LifeAccountAuthEditView_hint_text="@string/input_id_card_number"
app:layout_constraintTop_toBottomOf="@id/ev_real_name" />
<com.yidian.nightmode.widget.YdConstraintLayout
android:id="@+id/cl_face_auth"
android:layout_width="match_parent"
android:layout_height="85dp"
android:paddingStart="19dp"
android:paddingTop="17dp"
android:paddingEnd="12dp"
android:paddingBottom="6dp"
app:layout_constraintTop_toBottomOf="@id/ev_id_card_number">
<com.yidian.nightmode.widget.YdTextView
android:id="@+id/tv_face_auth"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:includeFontPadding="false"
android:text="@string/face_auth"
android:textColor="#FF333333"
android:textSize="15sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.yidian.nightmode.widget.YdTextView
android:id="@+id/tv_face_auth_result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="2dp"
android:includeFontPadding="false"
android:text="@string/start_face_auth"
android:textColor="#FF1852F1"
android:textSize="15sp"
app:layout_constraintEnd_toStartOf="@id/iv_face_auth_start"
app:layout_constraintTop_toTopOf="parent" />
<com.yidian.nightmode.widget.YdImageView
android:id="@+id/iv_face_auth_start"
android:layout_width="23dp"
android:layout_height="23dp"
android:src="@mipmap/icon_next"
app:layout_constraintBottom_toBottomOf="@id/tv_face_auth"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/tv_face_auth" />
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginTop="17dp"
android:background="#FFF2F2F2"
app:layout_constraintTop_toBottomOf="@id/tv_face_auth" />
<com.yidian.nightmode.widget.YdTextView
android:id="@+id/tv_face_auth_error_tips"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:includeFontPadding="false"
android:textColor="#FFFF3A3A"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="parent" />
</com.yidian.nightmode.widget.YdConstraintLayout>
<com.yidian.nightmode.widget.YdLinearLayout
android:id="@+id/ll_protocol"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="19dp"
android:gravity="center_vertical"
android:orientation="horizontal"
app:layout_constraintBottom_toTopOf="@id/btn_next"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent">
<com.yidian.nightmode.widget.YdCheckedBox
android:id="@+id/cb_protocol"
android:layout_width="27dp"
android:layout_height="27dp"
android:layout_marginEnd="2dp"
android:background="@drawable/selector_protocol_check"
android:button="@null" />
<com.yidian.nightmode.widget.YdTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/agree"
android:textColor="#FF999999"
android:textSize="13sp" />
<com.yidian.nightmode.widget.YdTextView
android:id="@+id/tv_privacy_certification"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/privacy_certification"
android:textColor="#FF1852F1"
android:textSize="13sp" />
<com.yidian.nightmode.widget.YdTextView
android:id="@+id/tv_user_agreement"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/user_agreement"
android:textColor="#FF1852F1"
android:textSize="13sp" />
</com.yidian.nightmode.widget.YdLinearLayout>
<com.yidian.nightmode.widget.YdButton
android:id="@+id/btn_next"
android:layout_width="302dp"
android:layout_height="42dp"
android:layout_marginBottom="33dp"
android:background="@drawable/bg_btn_auth"
android:text="@string/auth_finish"
android:textColor="#FFFFFFFF"
android:textSize="17sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</com.yidian.nightmode.widget.YdConstraintLayout>
\ No newline at end of file
<?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="wrap_content"
android:paddingStart="19dp"
android:paddingTop="17dp"
android:paddingEnd="19dp"
android:paddingBottom="6dp">
<com.yidian.nightmode.widget.YdTextView
android:id="@+id/tv_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:includeFontPadding="false"
android:textColor="#FF333333"
android:textSize="15sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.yidian.nightmode.widget.YdEditText
android:id="@+id/et_content"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="23dp"
android:background="@null"
android:includeFontPadding="false"
android:textColor="#FF333333"
android:textColorHint="#FFC2C2C2"
android:textSize="15sp"
app:layout_constraintStart_toEndOf="@id/tv_content"
app:layout_constraintTop_toTopOf="parent" />
<com.yidian.nightmode.widget.YdImageView
android:id="@+id/iv_clear"
android:layout_width="23dp"
android:layout_height="23dp"
android:src="@mipmap/icon_clear"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_divider"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginTop="17dp"
android:background="#FFF2F2F2"
app:layout_constraintTop_toBottomOf="@id/tv_content" />
<com.yidian.nightmode.widget.YdTextView
android:id="@+id/tv_error_tips"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:includeFontPadding="false"
android:textColor="#FFFF3A3A"
android:textSize="12sp"
app:layout_constraintTop_toBottomOf="@id/view_divider" />
</com.yidian.nightmode.widget.YdConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="LifeAccountAuthEditView">
<attr name="LifeAccountAuthEditView_content_text" format="string" />
<attr name="LifeAccountAuthEditView_hint_text" format="string" />
</declare-styleable>
</resources>
\ No newline at end of file
......@@ -34,4 +34,6 @@
<color name="progress_d8d8d8_transparent">#bfd8d8d8</color>
<color name="gray_333">#333333</color>
<color name="divider_white">#FFF2F2F2</color>
<color name="red_account_tips">#FF3A3A</color>
<color name="account_hint">#c2c2c2</color>
</resources>
\ No newline at end of file
......@@ -87,7 +87,24 @@
<string name="enterprise_auth">企业认证</string>
<string name="enterprise_auth_condition">开店条件:营业执照、经营者身份证或法人身份证</string>
<string name="enterprise_auth_description">企业店开通适合拥有个体工商户或企业营业执照商户申请,入住成功将享有更优质企业级服务于管理</string>
<string name="professional_label">职业标签</string>
<string name="describe_yourself">一句话描述自己(选填)</string>
<string name="chinese_id_card">中国大陆居民身份证</string>
<string name="upload_portrait_face">点击上传人像面</string>
<string name="upload_national_emblem_face">点击上传国徽面</string>
<string name="real_name">真实姓名</string>
<string name="input_real_name">请输入真实姓名</string>
<string name="check_id_card_name">请核对证件姓名</string>
<string name="id_card_number">证件号码</string>
<string name="input_id_card_number">请输入18位身份证号码</string>
<string name="check_id_card_number">请核对证件号码</string>
<string name="face_auth">人脸验证</string>
<string name="start_face_auth">去验证</string>
<string name="face_auth_fail">人脸识别失败,请重新识别</string>
<string name="agree">我同意</string>
<string name="privacy_certification">《隐私认证》</string>
<string name="user_agreement">《用户协议》</string>
<string name="auth_finish">完成认证</string>
</resources>
\ 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