Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
ShenghuoquanBusiness
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
bp
ShenghuoquanBusiness
Commits
5a9c632b
Commit
5a9c632b
authored
Jun 16, 2021
by
yinjiacheng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update 生活号认证信息输入字符过滤
parent
5360c59a
Changes
4
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
1227 additions
and
1144 deletions
+1227
-1144
LifeAccountBusinessLicenseAuthFragment.kt
...content/ui/auth/LifeAccountBusinessLicenseAuthFragment.kt
+270
-266
LifeAccountIDCardAuthFragment.kt
...quan/newscontent/ui/auth/LifeAccountIDCardAuthFragment.kt
+752
-746
InputFilterUtil.kt
.../yidian/shenghuoquan/newscontent/utils/InputFilterUtil.kt
+76
-11
LifeAccountAuthBusinessInfoEditView.kt
...newscontent/widget/LifeAccountAuthBusinessInfoEditView.kt
+129
-121
No files found.
Components/newscontent/src/main/java/com/yidian/shenghuoquan/newscontent/ui/auth/LifeAccountBusinessLicenseAuthFragment.kt
View file @
5a9c632b
This diff is collapsed.
Click to expand it.
Components/newscontent/src/main/java/com/yidian/shenghuoquan/newscontent/ui/auth/LifeAccountIDCardAuthFragment.kt
View file @
5a9c632b
This diff is collapsed.
Click to expand it.
Components/newscontent/src/main/java/com/yidian/shenghuoquan/newscontent/utils/InputFilterUtil.kt
View file @
5a9c632b
...
...
@@ -11,15 +11,80 @@ 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
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
}
}
\ No newline at end of file
}
/**
* 真实姓名过滤
* 汉字 + ·
*/
fun
getRealNameFilter
():
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
}
}
/**
* 身份证号过滤
* 数字 + X
*/
fun
getIDCardNumberFilter
():
InputFilter
{
return
InputFilter
{
source
,
start
,
end
,
dest
,
dstart
,
dend
->
val
pattern
=
Pattern
.
compile
(
"[0-9|X]+"
)
val
matcher
=
pattern
.
matcher
(
source
.
toString
())
if
(!
matcher
.
matches
())
return
@InputFilter
""
return
@InputFilter
null
}
}
/**
* 手机号过滤
* 数字
*/
fun
getPhoneNumberFilter
():
InputFilter
{
return
InputFilter
{
source
,
start
,
end
,
dest
,
dstart
,
dend
->
val
pattern
=
Pattern
.
compile
(
"[0-9]+"
)
val
matcher
=
pattern
.
matcher
(
source
.
toString
())
if
(!
matcher
.
matches
())
return
@InputFilter
""
return
@InputFilter
null
}
}
/**
* 公司注册名过滤
* 汉字
*/
fun
getRegistrationNameFilter
():
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
getRegistrationCodeFilter
():
InputFilter
{
return
InputFilter
{
source
,
start
,
end
,
dest
,
dstart
,
dend
->
val
pattern
=
Pattern
.
compile
(
"[0-9A-Z]+"
)
val
matcher
=
pattern
.
matcher
(
source
.
toString
())
if
(!
matcher
.
matches
())
return
@InputFilter
""
return
@InputFilter
null
}
}
}
Components/newscontent/src/main/java/com/yidian/shenghuoquan/newscontent/widget/LifeAccountAuthBusinessInfoEditView.kt
View file @
5a9c632b
...
...
@@ -3,6 +3,7 @@ package com.yidian.shenghuoquan.newscontent.widget
import
android.content.Context
import
android.graphics.Color
import
android.text.Editable
import
android.text.InputFilter
import
android.text.TextUtils
import
android.text.TextWatcher
import
android.util.AttributeSet
...
...
@@ -18,139 +19,146 @@ import com.yidian.shenghuoquan.newscontent.databinding.ViewLifeAccountAuthBusine
* description: 生活号认证 营业执照信息录入
*/
class
LifeAccountAuthBusinessInfoEditView
@JvmOverloads
constructor
(
context
:
Context
,
attrs
:
AttributeSet
?
=
null
,
defStyle
:
Int
=
0
context
:
Context
,
attrs
:
AttributeSet
?
=
null
,
defStyle
:
Int
=
0
)
:
YdConstraintLayout
(
context
,
attrs
,
defStyle
),
View
.
OnClickListener
,
TextWatcher
{
private
val
viewBinding
:
ViewLifeAccountAuthBusinessInfoEditBinding
=
ViewLifeAccountAuthBusinessInfoEditBinding
.
bind
(
View
.
inflate
(
getContext
(),
R
.
layout
.
view_life_account_auth_business_info_edit
,
this
)
)
private
var
callback
:
OnLifeAccountAuthBusinessInfoEditViewCallback
?
=
null
/**
* 是否输入错误标识位
*/
private
var
isInputError
=
false
init
{
val
typedArray
=
context
.
obtainStyledAttributes
(
attrs
,
R
.
styleable
.
LifeAccountAuthBusinessInfoEditView
)
viewBinding
.
tvContent
.
text
=
typedArray
.
getText
(
R
.
styleable
.
LifeAccountAuthBusinessInfoEditView_LifeAccountAuthBusinessInfoEditView_content_text
)
viewBinding
.
etContent
.
hint
=
typedArray
.
getText
(
R
.
styleable
.
LifeAccountAuthBusinessInfoEditView_LifeAccountAuthBusinessInfoEditView_hint_text
)
typedArray
.
recycle
()
viewBinding
.
ivClear
.
setOnClickListener
(
this
)
viewBinding
.
etContent
.
addTextChangedListener
(
this
)
private
val
viewBinding
:
ViewLifeAccountAuthBusinessInfoEditBinding
=
ViewLifeAccountAuthBusinessInfoEditBinding
.
bind
(
View
.
inflate
(
getContext
(),
R
.
layout
.
view_life_account_auth_business_info_edit
,
this
)
)
private
var
callback
:
OnLifeAccountAuthBusinessInfoEditViewCallback
?
=
null
/**
* 是否输入错误标识位
*/
private
var
isInputError
=
false
init
{
val
typedArray
=
context
.
obtainStyledAttributes
(
attrs
,
R
.
styleable
.
LifeAccountAuthBusinessInfoEditView
)
viewBinding
.
tvContent
.
text
=
typedArray
.
getText
(
R
.
styleable
.
LifeAccountAuthBusinessInfoEditView_LifeAccountAuthBusinessInfoEditView_content_text
)
viewBinding
.
etContent
.
hint
=
typedArray
.
getText
(
R
.
styleable
.
LifeAccountAuthBusinessInfoEditView_LifeAccountAuthBusinessInfoEditView_hint_text
)
typedArray
.
recycle
()
viewBinding
.
ivClear
.
setOnClickListener
(
this
)
viewBinding
.
etContent
.
addTextChangedListener
(
this
)
}
/**
* 展示错误提示
*/
fun
showErrorTips
(
tips
:
String
)
{
viewBinding
.
tvErrorTips
.
isVisible
=
true
viewBinding
.
tvErrorTips
.
text
=
tips
}
/**
* 隐藏错误提示
*/
private
fun
dismissErrorTips
()
{
viewBinding
.
tvErrorTips
.
isVisible
=
false
viewBinding
.
tvErrorTips
.
text
=
""
}
/**
* 清除输入的文字
*/
fun
clearEditContent
()
{
viewBinding
.
etContent
.
setText
(
""
)
if
(
isInputError
)
{
dismissErrorTips
()
cancelHighLightEditContent
()
}
/**
* 展示错误提示
*/
fun
showErrorTips
(
tips
:
String
)
{
viewBinding
.
tvErrorTips
.
isVisible
=
true
viewBinding
.
tvErrorTips
.
text
=
tips
callback
?.
onTextClear
(
this
)
}
/**
* 填充传入的文字
*/
fun
fillEditContent
(
content
:
String
?)
{
if
(!
TextUtils
.
isEmpty
(
content
))
{
viewBinding
.
etContent
.
setText
(
content
)
viewBinding
.
ivClear
.
visibility
=
View
.
VISIBLE
}
/**
* 隐藏错误提示
*/
private
fun
dismissErrorTips
()
{
viewBinding
.
tvErrorTips
.
isVisible
=
false
viewBinding
.
tvErrorTips
.
text
=
""
}
/**
* 禁止修改
*/
fun
disableModify
()
{
viewBinding
.
ivClear
.
isVisible
=
false
viewBinding
.
etContent
.
keyListener
=
null
}
/**
* 高亮显示输入文本
*/
fun
highLightEditContent
()
{
isInputError
=
true
viewBinding
.
etContent
.
setTextColor
(
Color
.
parseColor
(
"#FFFF3A3A"
))
}
/**
* 取消高亮显示输入文本
*/
private
fun
cancelHighLightEditContent
()
{
isInputError
=
false
viewBinding
.
etContent
.
setTextColor
(
Color
.
parseColor
(
"#FF333333"
))
}
/**
* 设置输入过滤
*/
fun
setInputFilters
(
vararg
filter
:
InputFilter
)
{
viewBinding
.
etContent
.
filters
=
filter
}
override
fun
onClick
(
v
:
View
?)
{
if
(
v
?.
id
==
R
.
id
.
iv_clear
)
{
// 清除输入框中的内容
clearEditContent
()
}
}
/**
* 清除输入的文字
*/
fun
clearEditContent
()
{
viewBinding
.
etContent
.
setText
(
""
)
if
(
isInputError
)
{
dismissErrorTips
()
cancelHighLightEditContent
()
}
callback
?.
onTextClear
(
this
)
}
override
fun
beforeTextChanged
(
s
:
CharSequence
?,
start
:
Int
,
count
:
Int
,
after
:
Int
)
{
/**
* 填充传入的文字
*/
fun
fillEditContent
(
content
:
String
?)
{
if
(!
TextUtils
.
isEmpty
(
content
))
{
viewBinding
.
etContent
.
setText
(
content
)
viewBinding
.
ivClear
.
visibility
=
View
.
VISIBLE
}
}
}
/**
* 禁止修改
*/
fun
disableModify
()
{
viewBinding
.
ivClear
.
isVisible
=
false
viewBinding
.
etContent
.
keyListener
=
null
override
fun
onTextChanged
(
s
:
CharSequence
?,
start
:
Int
,
before
:
Int
,
count
:
Int
)
{
}
override
fun
afterTextChanged
(
s
:
Editable
?)
{
// 处理一键清除按钮
viewBinding
.
ivClear
.
isVisible
=
!
TextUtils
.
isEmpty
(
s
)
callback
?.
onTextChange
(
this
,
s
.
toString
())
if
(
isInputError
)
{
dismissErrorTips
()
cancelHighLightEditContent
()
}
}
fun
setOnLifeAccountAuthBusinessInfoEditViewCallback
(
callback
:
OnLifeAccountAuthBusinessInfoEditViewCallback
)
{
this
.
callback
=
callback
}
interface
OnLifeAccountAuthBusinessInfoEditViewCallback
{
/**
*
高亮显示输入文本
*
清除内容
*/
fun
highLightEditContent
()
{
isInputError
=
true
viewBinding
.
etContent
.
setTextColor
(
Color
.
parseColor
(
"#FFFF3A3A"
))
}
fun
onTextClear
(
from
:
LifeAccountAuthBusinessInfoEditView
)
/**
*
取消高亮显示输入文本
*
内容修改
*/
private
fun
cancelHighLightEditContent
()
{
isInputError
=
false
viewBinding
.
etContent
.
setTextColor
(
Color
.
parseColor
(
"#FF333333"
))
}
override
fun
onClick
(
v
:
View
?)
{
if
(
v
?.
id
==
R
.
id
.
iv_clear
)
{
// 清除输入框中的内容
clearEditContent
()
}
}
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
.
isVisible
=
!
TextUtils
.
isEmpty
(
s
)
callback
?.
onTextChange
(
this
,
s
.
toString
())
if
(
isInputError
)
{
dismissErrorTips
()
cancelHighLightEditContent
()
}
}
fun
setOnLifeAccountAuthBusinessInfoEditViewCallback
(
callback
:
OnLifeAccountAuthBusinessInfoEditViewCallback
)
{
this
.
callback
=
callback
}
interface
OnLifeAccountAuthBusinessInfoEditViewCallback
{
/**
* 清除内容
*/
fun
onTextClear
(
from
:
LifeAccountAuthBusinessInfoEditView
)
/**
* 内容修改
*/
fun
onTextChange
(
from
:
LifeAccountAuthBusinessInfoEditView
,
text
:
String
)
}
}
\ No newline at end of file
fun
onTextChange
(
from
:
LifeAccountAuthBusinessInfoEditView
,
text
:
String
)
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment