新增: {{CONTACT_NAME}} 标签用于反查{{FROM}}对应的通讯录姓名 #582

This commit is contained in:
pppscn 2025-02-13 17:34:24 +08:00
parent 992cabe323
commit b733fc2d4c
6 changed files with 24 additions and 1 deletions

View File

@ -416,6 +416,7 @@ class App : Application(), CactusCallback, Configuration.Provider by Core {
getString(R.string.tag_sms) to getString(R.string.insert_tag_sms),
getString(R.string.tag_card_slot) to getString(R.string.insert_tag_card_slot),
getString(R.string.tag_card_subid) to getString(R.string.insert_tag_card_subid),
getString(R.string.tag_contact_name) to getString(R.string.insert_tag_contact_name),
)
)
CALL_TAG_MAP.clear()
@ -426,6 +427,7 @@ class App : Application(), CactusCallback, Configuration.Provider by Core {
getString(R.string.tag_card_slot) to getString(R.string.insert_tag_card_slot),
getString(R.string.tag_card_subid) to getString(R.string.insert_tag_card_subid),
getString(R.string.tag_call_type) to getString(R.string.insert_tag_call_type),
getString(R.string.tag_contact_name) to getString(R.string.insert_tag_contact_name),
)
)
APP_TAG_MAP.clear()

View File

@ -10,6 +10,7 @@ import com.idormy.sms.forwarder.utils.AppUtils
import com.idormy.sms.forwarder.utils.BatteryUtils
import com.idormy.sms.forwarder.utils.HttpServerUtils
import com.idormy.sms.forwarder.utils.Log
import com.idormy.sms.forwarder.utils.PhoneUtils
import com.idormy.sms.forwarder.utils.SettingUtils
import com.idormy.sms.forwarder.utils.SettingUtils.Companion.enableSmsTemplate
import com.idormy.sms.forwarder.utils.SettingUtils.Companion.extraDeviceMark
@ -129,6 +130,7 @@ data class MsgInfo(
)
.replaceAppNameTag(from, encoderName)
.replaceLocationTag(encoderName)
.replaceContactNameTag(encoderName)
.regexReplace(regexReplace)
.trim()
}
@ -185,6 +187,20 @@ data class MsgInfo(
return result
}
//替换{{CONTACT_NAME}}标签
private fun String.replaceContactNameTag(encoderName: String = ""): String {
if (TextUtils.isEmpty(this)) return this
if (this.indexOf(getString(R.string.tag_contact_name)) == -1) return this
val contacts = PhoneUtils.getContactByNumber(from)
var contactName = if (contacts.isNotEmpty()) contacts[0].name else getString(R.string.unknown_number)
when (encoderName) {
"Gson" -> contactName = toJsonStr(contactName)
"URLEncoder" -> contactName = URLEncoder.encode(contactName, "UTF-8")
}
return this.replaceTag(getString(R.string.tag_contact_name), contactName)
}
//替换{{APP名称}}标签
private fun String.replaceAppNameTag(packageName: String, encoderName: String = ""): String {
if (TextUtils.isEmpty(this)) return this
@ -256,4 +272,4 @@ data class MsgInfo(
", simInfo=" + simInfo +
'}'
}
}
}

View File

@ -27,6 +27,7 @@
<string name="insert_tag_ipv6">Public IPv6</string>
<string name="insert_tag_ip_list">IP List</string>
<string name="insert_tag_net_type">Network Status</string>
<string name="insert_tag_contact_name">Contact Name</string>
<string name="type_param_sms">Sms</string>
<string name="type_param_call">Call</string>

View File

@ -27,6 +27,7 @@
<string name="insert_tag_ipv6">公网IPv6</string>
<string name="insert_tag_ip_list">IP地址列表</string>
<string name="insert_tag_net_type">网络状态</string>
<string name="insert_tag_contact_name">来源姓名</string>
<string name="type_param_sms">短信</string>
<string name="type_param_call">通话</string>

View File

@ -27,6 +27,7 @@
<string name="insert_tag_ipv6">公網IPv6</string>
<string name="insert_tag_ip_list">IP地址列表</string>
<string name="insert_tag_net_type">網路狀態</string>
<string name="insert_tag_contact_name">來源姓名</string>
<string name="type_param_sms">簡訊</string>
<string name="type_param_call">通話</string>

View File

@ -26,6 +26,7 @@
<string name="tag_ipv6" translatable="false">{{IPV6}}</string>
<string name="tag_ip_list" translatable="false">{{IP_LIST}}</string>
<string name="tag_net_type" translatable="false">{{NET_TYPE}}</string>
<string name="tag_contact_name" translatable="false">{{CONTACT_NAME}}</string>
<string name="insert_tag_from">来源号码</string>
<string name="insert_tag_sms">短信内容</string>
@ -54,6 +55,7 @@
<string name="insert_tag_ipv6">公网IPv6</string>
<string name="insert_tag_ip_list">IP地址列表</string>
<string name="insert_tag_net_type">网络状态</string>
<string name="insert_tag_contact_name">来源姓名</string>
<string name="type_param_sms">短信</string>
<string name="type_param_call">通话</string>