是否有人曾提过类似的问题?
否(No)
你觉得APP有什么不足之处?
转发规则 - 应用 - 匹配字段 选择多重匹配时,无法指定使用 UID 匹配。希望能够添加这个匹配条件。
现象是,在选择多重匹配后,“匹配的值”中填写 并且 是 UID 相等 999 ,再点击测试或保存,均会提示“多重匹配规则的第 1 行格式有误”。
你觉得该怎么去完善会比较好?【非必答】
从代码上看,底层的匹配代码应该是支持 UID 的:
|
FILED_LIST.add(FILED_UID) |
UI 上检测多重匹配规则是否合法,只是通过一个预定义的正则表达式去检测:
|
//检查多重匹配规则是否正确 |
|
private fun checkMultiMatch(ruleStr: String?): Int { |
|
if (TextUtils.isEmpty(ruleStr)) return 0 |
|
|
|
//Log.d(TAG, getString(R.string.regex_multi_match)) |
|
val regex = Regex(pattern = getString(R.string.regex_multi_match)) |
|
var lineNum = 1 |
|
val lineArray = ruleStr?.split("\\n".toRegex())?.toTypedArray() |
|
for (line in lineArray!!) { |
|
Log.d(TAG, line) |
|
if (!line.matches(regex)) return lineNum |
|
lineNum++ |
|
} |
|
|
|
return 0 |
|
} |
|
<string name="regex_multi_match" tools:ignore="TypographyDashes">^\\s*(并且|或者)\\s(是|不是)\\s(手机号|APP包名|短信内容|通知内容|通知标题|卡槽信息|通话类型)\\s(相等|包含|不包含|开头|结尾|正则匹配)\\s(.*)$</string> |
因此或许只需要简单修改这个正则表达式,把 UID 加进去就可以支持了。但是我目前没有开发环境,无法做这个测试。
是否有人曾提过类似的问题?
否(No)
你觉得APP有什么不足之处?
转发规则 - 应用 - 匹配字段 选择多重匹配时,无法指定使用 UID 匹配。希望能够添加这个匹配条件。
现象是,在选择多重匹配后,“匹配的值”中填写
并且 是 UID 相等 999,再点击测试或保存,均会提示“多重匹配规则的第 1 行格式有误”。你觉得该怎么去完善会比较好?【非必答】
从代码上看,底层的匹配代码应该是支持 UID 的:
SmsForwarder/app/src/main/java/com/idormy/sms/forwarder/utils/RuleLine.kt
Line 62 in ff83a8a
UI 上检测多重匹配规则是否合法,只是通过一个预定义的正则表达式去检测:
SmsForwarder/app/src/main/java/com/idormy/sms/forwarder/fragment/RulesEditFragment.kt
Lines 737 to 752 in ff83a8a
SmsForwarder/app/src/main/res/values/strings.xml
Line 637 in ff83a8a
因此或许只需要简单修改这个正则表达式,把 UID 加进去就可以支持了。但是我目前没有开发环境,无法做这个测试。