diff --git a/app/src/main/java/com/idormy/sms/forwarder/App.kt b/app/src/main/java/com/idormy/sms/forwarder/App.kt index 148ff511..c40e370d 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/App.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/App.kt @@ -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() diff --git a/app/src/main/java/com/idormy/sms/forwarder/entity/MsgInfo.kt b/app/src/main/java/com/idormy/sms/forwarder/entity/MsgInfo.kt index 320822bb..0160ed51 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/entity/MsgInfo.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/entity/MsgInfo.kt @@ -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 + '}' } -} \ No newline at end of file +} diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml index be999792..89c5ee91 100644 --- a/app/src/main/res/values-en/strings.xml +++ b/app/src/main/res/values-en/strings.xml @@ -27,6 +27,7 @@ Public IPv6 IP List Network Status + Contact Name Sms Call diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 25b74cfe..f7ee6ccd 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -27,6 +27,7 @@ 公网IPv6 IP地址列表 网络状态 + 来源姓名 短信 通话 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 5b679648..deabf87d 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -27,6 +27,7 @@ 公網IPv6 IP地址列表 網路狀態 + 來源姓名 簡訊 通話 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 39a8e2a0..e9b0fbfe 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -26,6 +26,7 @@ {{IPV6}} {{IP_LIST}} {{NET_TYPE}} + {{CONTACT_NAME}} 来源号码 短信内容 @@ -54,6 +55,7 @@ 公网IPv6 IP地址列表 网络状态 + 来源姓名 短信 通话