Commit eaf22524 authored by yinjiacheng's avatar yinjiacheng

fix SHQBD-156 SHQBD-147 生活号名称修改长度上限修改为40

parent b8e54f47
......@@ -3,6 +3,7 @@ package com.yidian.shenghuoquan.newscontent.ui.auth
import android.annotation.SuppressLint
import android.os.Bundle
import android.text.Editable
import android.text.InputFilter
import androidx.core.view.isVisible
import com.orhanobut.hawk.Hawk
import com.yidian.common.HawkConfig
......@@ -13,6 +14,8 @@ import com.yidian.shenghuoquan.newscontent.R
import com.yidian.shenghuoquan.newscontent.bean.ICreateLifeAccountCallback
import com.yidian.shenghuoquan.newscontent.databinding.ActivityLifeAccountCreateBinding
import com.yidian.shenghuoquan.newscontent.http.ApiService
import com.yidian.shenghuoquan.newscontent.utils.InputFilterUtil
import com.yidian.shenghuoquan.newscontent.utils.SensitiveInfoUtil
import com.yidian.shenghuoquan.newscontent.utils.TextWatcherAdapter
import com.yidian.utils.ToastUtil
import com.yidian.xpage.XPageManager
......@@ -33,9 +36,12 @@ class LifeAccountCreateActivity : BaseActivity<ActivityLifeAccountCreateBinding>
return LIFE_ACCOUNT_CREATE
}
private val accountMaxLength = 20
/**
* 生活号名称长度限制
*/
private val lifeAccountNameMaxLength = 40
private var lifeAccountId: String? = null
private var lifeAccountName: String = ""
private var lifeAccountName: String? = null
override fun init(savedInstanceState: Bundle?) {
super.init(savedInstanceState)
......@@ -45,15 +51,13 @@ class LifeAccountCreateActivity : BaseActivity<ActivityLifeAccountCreateBinding>
}
private fun initData() {
val params = intent.getSerializableExtra(XRouterPathConstants.ParamsKey)
if (params != null && params is HashMap<*, *>) {
lifeAccountId = params[LIFE_ACCOUNT_ID] as String
lifeAccountId = intent.getSerializableExtra(XRouterPathConstants.ParamsKey)?.let { params ->
(params as HashMap<*, *>)[LIFE_ACCOUNT_ID]?.let {
it as String
}
}
// 设置管理员信息
val name = Hawk.get(HawkConfig.Nickname, "")
val phone = Hawk.get(HawkConfig.Mobile, "")
setUserName(name, phone)
setUserName(Hawk.get(HawkConfig.Nickname, ""), Hawk.get(HawkConfig.Mobile, ""))
}
private fun initView() {
......@@ -69,6 +73,8 @@ class LifeAccountCreateActivity : BaseActivity<ActivityLifeAccountCreateBinding>
checkAccount(s.toString())
}
})
// 设置输入过滤规则
viewBind.etAccount.filters = arrayOf(InputFilterUtil.getLifeAccountNameFilter(), InputFilter.LengthFilter(lifeAccountNameMaxLength + 1))
viewBind.btnCreateAccount.setOnClickListener {
createLifeAccount()
}
......@@ -79,15 +85,13 @@ class LifeAccountCreateActivity : BaseActivity<ActivityLifeAccountCreateBinding>
*/
private fun createLifeAccount() {
lifeAccountName = viewBind.etAccount.text.toString()
if (lifeAccountName.isEmpty()) {
ToastUtil.showToast(this, "生活号名称不能为空")
if (lifeAccountName.isNullOrEmpty() || lifeAccountId.isNullOrEmpty()) {
return
}
ApiService.createLifeAccount(
this,
hashMapOf(
Pair(LIFE_ACCOUNT_ID, lifeAccountId.toString()),
Pair(LIFE_ACCOUNT_NAME, lifeAccountName)
Pair(LIFE_ACCOUNT_ID, lifeAccountId), Pair(LIFE_ACCOUNT_NAME, lifeAccountName)
)
)
......@@ -95,14 +99,10 @@ class LifeAccountCreateActivity : BaseActivity<ActivityLifeAccountCreateBinding>
@SuppressLint("SetTextI18n")
private fun setUserName(name: String, number: String) {
val numberFormat = formatNumber(number)
val numberFormat = SensitiveInfoUtil.mobileEncrypt(number)
viewBind.tvUserName.text = "$name $numberFormat"
}
private fun formatNumber(number: String): String {
return number.replace("(\\d{3})\\d{4}(\\d{4})".toRegex(), "$1****$2")
}
@Suppress("DEPRECATION")
private fun checkAccount(s: String) {
if (s.isEmpty()) {
......@@ -112,7 +112,7 @@ class LifeAccountCreateActivity : BaseActivity<ActivityLifeAccountCreateBinding>
viewBind.vDivider.setBackgroundResource(R.color.divider_white)
return
}
if (s.length > accountMaxLength) {
if (s.length > lifeAccountNameMaxLength) {
viewBind.btnCreateAccount.alpha = 0.32f
viewBind.btnCreateAccount.isEnabled = false
viewBind.tvErrorTips.isVisible = true
......
......@@ -51,7 +51,7 @@ class LifeAccountModifyNameActivity : BaseActivity<ActivityLifeAccountModifyName
private fun initView() {
// 只允许输入中文并且最长20汉字
viewBind.evLifeAccountName.setInputFilters(InputFilterUtil.getChineseFilter(), InputFilter.LengthFilter(20))
viewBind.evLifeAccountName.setInputFilters(InputFilterUtil.getLifeAccountNameFilter(), InputFilter.LengthFilter(40))
}
private fun initListener() {
......
......@@ -11,24 +11,12 @@ import java.util.regex.Pattern
*/
object InputFilterUtil {
/**
* 只允许汉字输入
*/
fun getChineseFilter(): InputFilter {
return InputFilter { source, start, end, dest, dstart, dend ->
val pattern = Pattern.compile("[\\u4E00-\\u9FFF]+")
val matcher = pattern.matcher(source.toString())
if (!matcher.matches()) return@InputFilter ""
return@InputFilter null
}
}
/**
* 真实姓名过滤
* 汉字 + ·
*/
fun getRealNameFilter(): InputFilter {
return InputFilter { source, start, end, dest, dstart, dend ->
return InputFilter { source, _, _, _, _, _ ->
val pattern = Pattern.compile("[\\u4E00-\\u9FFF|·]+")
val matcher = pattern.matcher(source.toString())
if (!matcher.matches()) return@InputFilter ""
......@@ -41,7 +29,7 @@ object InputFilterUtil {
* 数字 + X
*/
fun getIDCardNumberFilter(): InputFilter {
return InputFilter { source, start, end, dest, dstart, dend ->
return InputFilter { source, _, _, _, _, _ ->
val pattern = Pattern.compile("[0-9|X]+")
val matcher = pattern.matcher(source.toString())
if (!matcher.matches()) return@InputFilter ""
......@@ -54,7 +42,7 @@ object InputFilterUtil {
* 数字
*/
fun getPhoneNumberFilter(): InputFilter {
return InputFilter { source, start, end, dest, dstart, dend ->
return InputFilter { source, _, _, _, _, _ ->
val pattern = Pattern.compile("[0-9]+")
val matcher = pattern.matcher(source.toString())
if (!matcher.matches()) return@InputFilter ""
......@@ -67,7 +55,7 @@ object InputFilterUtil {
* 汉字
*/
fun getRegistrationNameFilter(): InputFilter {
return InputFilter { source, start, end, dest, dstart, dend ->
return InputFilter { source, _, _, _, _, _ ->
val pattern = Pattern.compile("[\\u4E00-\\u9FFF]+")
val matcher = pattern.matcher(source.toString())
if (!matcher.matches()) return@InputFilter ""
......@@ -80,11 +68,23 @@ object InputFilterUtil {
* 数字 + 大写字母
*/
fun getRegistrationCodeFilter(): InputFilter {
return InputFilter { source, start, end, dest, dstart, dend ->
return InputFilter { source, _, _, _, _, _ ->
val pattern = Pattern.compile("[0-9A-Z]+")
val matcher = pattern.matcher(source.toString())
if (!matcher.matches()) return@InputFilter ""
return@InputFilter null
}
}
/**
* 生活号名称过滤
*/
fun getLifeAccountNameFilter(): InputFilter {
return InputFilter { source, _, _, _, _, _ ->
val pattern = Pattern.compile("[\\u4E00-\\u9FFF]+")
val matcher = pattern.matcher(source.toString())
if (!matcher.matches()) return@InputFilter ""
return@InputFilter null
}
}
}
......@@ -61,7 +61,7 @@
android:background="@null"
android:gravity="center_vertical"
android:hint="@string/account_create_tips"
android:maxLength="21"
android:singleLine="true"
android:textColor="@color/gray_333"
android:textColorHint="@color/account_hint"
android:textCursorDrawable="@drawable/comment_dialog_cursor"
......
......@@ -51,7 +51,7 @@
<string name="create_account">确认创建</string>
<string name="account_create_tips">同企业下生活号名称不可复用</string>
<string name="account_create_desc">生活号作为企业服务管理载体,请正确使用生活号权益,新申请生活号默认当前申请人作为默认管理员,申请成功 后可在销售APP内进行更改</string>
<string name="account_error_tips">名称超限,最多20个字符</string>
<string name="account_error_tips">名称超限,最多40个字符</string>
<string name="account_manager">管理员</string>
<string name="account_name">生活号名称</string>
<string name="account_title">创建生活号</string>
......
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