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