mirror of
https://github.com/pppscn/SmsForwarder
synced 2025-08-02 17:07:41 +08:00
优化:统一管理自定义模板可用变量标签插入按钮 #559
This commit is contained in:
parent
a77f630524
commit
0a3f9f53f1
@ -93,6 +93,15 @@ class App : Application(), CactusCallback, Configuration.Provider by Core {
|
||||
@SuppressLint("StaticFieldLeak")
|
||||
lateinit var context: Context
|
||||
|
||||
//自定义模板可用变量标签
|
||||
var COMMON_TAG_MAP: MutableMap<String, String> = mutableMapOf()
|
||||
var SMS_TAG_MAP: MutableMap<String, String> = mutableMapOf()
|
||||
var CALL_TAG_MAP: MutableMap<String, String> = mutableMapOf()
|
||||
var APP_TAG_MAP: MutableMap<String, String> = mutableMapOf()
|
||||
var LOCATION_TAG_MAP: MutableMap<String, String> = mutableMapOf()
|
||||
var BATTERY_TAG_MAP: MutableMap<String, String> = mutableMapOf()
|
||||
var NETWORK_TAG_MAP: MutableMap<String, String> = mutableMapOf()
|
||||
|
||||
//通话类型:1.来电挂机 2.去电挂机 3.未接来电 4.来电提醒 5.来电接通 6.去电拨出
|
||||
var CALL_TYPE_MAP: MutableMap<String, String> = mutableMapOf()
|
||||
var FILED_MAP: MutableMap<String, String> = mutableMapOf()
|
||||
@ -390,6 +399,74 @@ class App : Application(), CactusCallback, Configuration.Provider by Core {
|
||||
private fun switchLanguage(newLocale: Locale) {
|
||||
isNeedSpaceBetweenWords = !newLocale.language.contains("zh")
|
||||
|
||||
//自定义模板可用变量标签
|
||||
COMMON_TAG_MAP.clear()
|
||||
COMMON_TAG_MAP.putAll(
|
||||
mapOf(
|
||||
getString(R.string.tag_receive_time) to getString(R.string.insert_tag_receive_time),
|
||||
getString(R.string.tag_current_time) to getString(R.string.insert_tag_current_time),
|
||||
getString(R.string.tag_device_name) to getString(R.string.insert_tag_device_name),
|
||||
getString(R.string.tag_app_version) to getString(R.string.insert_tag_app_version),
|
||||
)
|
||||
)
|
||||
SMS_TAG_MAP.clear()
|
||||
SMS_TAG_MAP.putAll(
|
||||
mapOf(
|
||||
getString(R.string.tag_from) to getString(R.string.insert_tag_from),
|
||||
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),
|
||||
)
|
||||
)
|
||||
CALL_TAG_MAP.clear()
|
||||
CALL_TAG_MAP.putAll(
|
||||
mapOf(
|
||||
getString(R.string.tag_from) to getString(R.string.insert_tag_from),
|
||||
getString(R.string.tag_sms) to getString(R.string.insert_tag_msg),
|
||||
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),
|
||||
)
|
||||
)
|
||||
APP_TAG_MAP.clear()
|
||||
APP_TAG_MAP.putAll(
|
||||
mapOf(
|
||||
getString(R.string.tag_uid) to getString(R.string.insert_tag_uid),
|
||||
getString(R.string.tag_package_name) to getString(R.string.insert_tag_package_name),
|
||||
getString(R.string.tag_app_name) to getString(R.string.insert_tag_app_name),
|
||||
getString(R.string.tag_title) to getString(R.string.insert_tag_title),
|
||||
getString(R.string.tag_msg) to getString(R.string.insert_tag_msg),
|
||||
)
|
||||
)
|
||||
LOCATION_TAG_MAP.clear()
|
||||
LOCATION_TAG_MAP.putAll(
|
||||
mapOf(
|
||||
getString(R.string.tag_location) to getString(R.string.insert_tag_location),
|
||||
getString(R.string.tag_location_longitude) to getString(R.string.insert_tag_location_longitude),
|
||||
getString(R.string.tag_location_latitude) to getString(R.string.insert_tag_location_latitude),
|
||||
getString(R.string.tag_location_address) to getString(R.string.insert_tag_location_address),
|
||||
)
|
||||
)
|
||||
BATTERY_TAG_MAP.clear()
|
||||
BATTERY_TAG_MAP.putAll(
|
||||
mapOf(
|
||||
getString(R.string.tag_battery_pct) to getString(R.string.insert_tag_battery_pct),
|
||||
getString(R.string.tag_battery_status) to getString(R.string.insert_tag_battery_status),
|
||||
getString(R.string.tag_battery_plugged) to getString(R.string.insert_tag_battery_plugged),
|
||||
getString(R.string.tag_battery_info) to getString(R.string.insert_tag_battery_info),
|
||||
getString(R.string.tag_battery_info_simple) to getString(R.string.insert_tag_battery_info_simple),
|
||||
)
|
||||
)
|
||||
NETWORK_TAG_MAP.clear()
|
||||
NETWORK_TAG_MAP.putAll(
|
||||
mapOf(
|
||||
getString(R.string.tag_ipv4) to getString(R.string.insert_tag_ipv4),
|
||||
getString(R.string.tag_ipv6) to getString(R.string.insert_tag_ipv6),
|
||||
getString(R.string.tag_ip_list) to getString(R.string.insert_tag_ip_list),
|
||||
getString(R.string.tag_net_type) to getString(R.string.insert_tag_net_type),
|
||||
)
|
||||
)
|
||||
|
||||
CALL_TYPE_MAP.clear()
|
||||
CALL_TYPE_MAP.putAll(
|
||||
mapOf(
|
||||
|
@ -166,9 +166,6 @@ class RulesEditFragment : BaseFragment<FragmentRulesEditBinding?>(), View.OnClic
|
||||
binding!!.rbCallType.visibility = View.GONE
|
||||
binding!!.rbContent.visibility = View.GONE
|
||||
binding!!.tvMuRuleTips.setText(R.string.mu_rule_app_tips)
|
||||
binding!!.btInsertExtra.visibility = View.GONE
|
||||
binding!!.btInsertSender.visibility = View.GONE
|
||||
binding!!.btInsertContent.visibility = View.GONE
|
||||
//初始化APP下拉列表
|
||||
initAppSpinner()
|
||||
//监听已安装App信息列表加载完成事件
|
||||
@ -183,11 +180,6 @@ class RulesEditFragment : BaseFragment<FragmentRulesEditBinding?>(), View.OnClic
|
||||
binding!!.rbInformContent.visibility = View.GONE
|
||||
//binding!!.rbMultiMatch.visibility = View.GONE
|
||||
binding!!.tvMuRuleTips.setText(R.string.mu_rule_call_tips)
|
||||
binding!!.btInsertContent.visibility = View.GONE
|
||||
binding!!.btInsertSenderApp.visibility = View.GONE
|
||||
binding!!.btInsertUid.visibility = View.GONE
|
||||
binding!!.btInsertTitleApp.visibility = View.GONE
|
||||
binding!!.btInsertContentApp.visibility = View.GONE
|
||||
|
||||
//通话类型:1.来电挂机 2.去电挂机 3.未接来电 4.来电提醒 5.来电接通 6.去电拨出
|
||||
binding!!.spCallType.setItems(CALL_TYPE_MAP.values.toList())
|
||||
@ -210,13 +202,12 @@ class RulesEditFragment : BaseFragment<FragmentRulesEditBinding?>(), View.OnClic
|
||||
binding!!.rbPackageName.visibility = View.GONE
|
||||
binding!!.rbUid.visibility = View.GONE
|
||||
binding!!.rbInformContent.visibility = View.GONE
|
||||
binding!!.btInsertSenderApp.visibility = View.GONE
|
||||
binding!!.btInsertUid.visibility = View.GONE
|
||||
binding!!.btInsertTitleApp.visibility = View.GONE
|
||||
binding!!.btInsertContentApp.visibility = View.GONE
|
||||
}
|
||||
}
|
||||
|
||||
//创建标签按钮
|
||||
CommonUtils.createTagButtons(requireContext(), binding!!.glSmsTemplate, binding!!.etSmsTemplate, ruleType)
|
||||
|
||||
if (ruleId <= 0) { //新增
|
||||
titleBar?.setSubTitle(getString(R.string.add_rule))
|
||||
binding!!.btnDel.setText(R.string.discard)
|
||||
@ -230,15 +221,6 @@ class RulesEditFragment : BaseFragment<FragmentRulesEditBinding?>(), View.OnClic
|
||||
|
||||
override fun initListeners() {
|
||||
binding!!.btnSilentPeriod.setOnClickListener(this)
|
||||
binding!!.btInsertSender.setOnClickListener(this)
|
||||
binding!!.btInsertContent.setOnClickListener(this)
|
||||
binding!!.btInsertSenderApp.setOnClickListener(this)
|
||||
binding!!.btInsertUid.setOnClickListener(this)
|
||||
binding!!.btInsertTitleApp.setOnClickListener(this)
|
||||
binding!!.btInsertContentApp.setOnClickListener(this)
|
||||
binding!!.btInsertExtra.setOnClickListener(this)
|
||||
binding!!.btInsertTime.setOnClickListener(this)
|
||||
binding!!.btInsertDeviceName.setOnClickListener(this)
|
||||
binding!!.btnTest.setOnClickListener(this)
|
||||
binding!!.btnDel.setOnClickListener(this)
|
||||
binding!!.btnSave.setOnClickListener(this)
|
||||
@ -334,7 +316,6 @@ class RulesEditFragment : BaseFragment<FragmentRulesEditBinding?>(), View.OnClic
|
||||
@SingleClick
|
||||
override fun onClick(v: View) {
|
||||
try {
|
||||
val etSmsTemplate: EditText = binding!!.etSmsTemplate
|
||||
when (v.id) {
|
||||
R.id.btn_silent_period -> {
|
||||
OptionsPickerBuilder(context, OnOptionsSelectListener { _: View?, options1: Int, options2: Int, _: Int ->
|
||||
@ -350,51 +331,6 @@ class RulesEditFragment : BaseFragment<FragmentRulesEditBinding?>(), View.OnClic
|
||||
}
|
||||
}
|
||||
|
||||
R.id.bt_insert_sender -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etSmsTemplate, getString(R.string.tag_from))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_content -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etSmsTemplate, getString(R.string.tag_sms))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_sender_app -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etSmsTemplate, getString(R.string.tag_package_name))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_uid -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etSmsTemplate, getString(R.string.tag_uid))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_title_app -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etSmsTemplate, getString(R.string.tag_title))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_content_app -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etSmsTemplate, getString(R.string.tag_msg))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_extra -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etSmsTemplate, getString(R.string.tag_card_slot))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_time -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etSmsTemplate, getString(R.string.tag_receive_time))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_device_name -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etSmsTemplate, getString(R.string.tag_device_name))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.btn_test -> {
|
||||
val ruleNew = checkForm()
|
||||
testRule(ruleNew)
|
||||
|
@ -221,11 +221,6 @@ class SettingsFragment : BaseFragment<FragmentSettingsBinding?>(), View.OnClickL
|
||||
binding!!.btnExtraDeviceMark.setOnClickListener(this)
|
||||
binding!!.btnExtraSim1.setOnClickListener(this)
|
||||
binding!!.btnExtraSim2.setOnClickListener(this)
|
||||
binding!!.btInsertSender.setOnClickListener(this)
|
||||
binding!!.btInsertContent.setOnClickListener(this)
|
||||
binding!!.btInsertExtra.setOnClickListener(this)
|
||||
binding!!.btInsertTime.setOnClickListener(this)
|
||||
binding!!.btInsertDeviceName.setOnClickListener(this)
|
||||
binding!!.btnExportLog.setOnClickListener(this)
|
||||
|
||||
//监听已安装App信息列表加载完成事件
|
||||
@ -235,7 +230,6 @@ class SettingsFragment : BaseFragment<FragmentSettingsBinding?>(), View.OnClickL
|
||||
@SuppressLint("SetTextI18n")
|
||||
@SingleClick
|
||||
override fun onClick(v: View) {
|
||||
val etSmsTemplate: EditText = binding!!.etSmsTemplate
|
||||
when (v.id) {
|
||||
R.id.btn_silent_period -> {
|
||||
OptionsPickerBuilder(context, OnOptionsSelectListener { _: View?, options1: Int, options2: Int, _: Int ->
|
||||
@ -304,37 +298,6 @@ class SettingsFragment : BaseFragment<FragmentSettingsBinding?>(), View.OnClickL
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_sender -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etSmsTemplate, getString(R.string.tag_from))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_content -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etSmsTemplate, getString(R.string.tag_sms))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_extra -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(
|
||||
etSmsTemplate, getString(R.string.tag_card_slot)
|
||||
)
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_time -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(
|
||||
etSmsTemplate, getString(R.string.tag_receive_time)
|
||||
)
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_device_name -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(
|
||||
etSmsTemplate, getString(R.string.tag_device_name)
|
||||
)
|
||||
return
|
||||
}
|
||||
|
||||
R.id.btn_export_log -> {
|
||||
XXPermissions.with(this)
|
||||
// 申请储存权限
|
||||
@ -1098,6 +1061,8 @@ class SettingsFragment : BaseFragment<FragmentSettingsBinding?>(), View.OnClickL
|
||||
|
||||
//设置转发信息模版
|
||||
private fun editSmsTemplate(textSmsTemplate: EditText) {
|
||||
//创建标签按钮
|
||||
CommonUtils.createTagButtons(requireContext(), binding!!.glSmsTemplate, textSmsTemplate, "all")
|
||||
textSmsTemplate.setText(SettingUtils.smsTemplate)
|
||||
textSmsTemplate.addTextChangedListener(object : TextWatcher {
|
||||
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {}
|
||||
|
@ -77,7 +77,7 @@ class AlarmFragment : BaseFragment<FragmentTasksActionAlarmBinding?>(), View.OnC
|
||||
mCountDownHelper = CountDownButtonHelper(binding!!.btnTest, 2)
|
||||
mCountDownHelper!!.setOnCountDownListener(object : CountDownButtonHelper.OnCountDownListener {
|
||||
override fun onCountDown(time: Int) {
|
||||
binding!!.btnTest.text = String.format(getString(R.string.seconds_n), time.toString())
|
||||
binding!!.btnTest.text = String.format(getString(R.string.seconds_n), time)
|
||||
}
|
||||
|
||||
override fun onFinished() {
|
||||
|
@ -7,7 +7,6 @@ import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.AdapterView
|
||||
import android.widget.CompoundButton
|
||||
import android.widget.EditText
|
||||
import androidx.recyclerview.widget.ItemTouchHelper
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
@ -156,6 +155,9 @@ class NotificationFragment : BaseFragment<FragmentTasksActionNotificationBinding
|
||||
|
||||
//初始化发送通道下拉框
|
||||
initSenderSpinner()
|
||||
|
||||
//创建标签按钮
|
||||
CommonUtils.createTagButtons(requireContext(), binding!!.glSmsTemplate, binding!!.etSmsTemplate, ruleType)
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
@ -165,15 +167,6 @@ class NotificationFragment : BaseFragment<FragmentTasksActionNotificationBinding
|
||||
|
||||
override fun initListeners() {
|
||||
binding!!.btnSilentPeriod.setOnClickListener(this)
|
||||
binding!!.btInsertSender.setOnClickListener(this)
|
||||
binding!!.btInsertContent.setOnClickListener(this)
|
||||
binding!!.btInsertSenderApp.setOnClickListener(this)
|
||||
binding!!.btInsertUid.setOnClickListener(this)
|
||||
binding!!.btInsertTitleApp.setOnClickListener(this)
|
||||
binding!!.btInsertContentApp.setOnClickListener(this)
|
||||
binding!!.btInsertExtra.setOnClickListener(this)
|
||||
binding!!.btInsertTime.setOnClickListener(this)
|
||||
binding!!.btInsertDeviceName.setOnClickListener(this)
|
||||
binding!!.btnTest.setOnClickListener(this)
|
||||
binding!!.btnDel.setOnClickListener(this)
|
||||
binding!!.btnSave.setOnClickListener(this)
|
||||
@ -213,7 +206,6 @@ class NotificationFragment : BaseFragment<FragmentTasksActionNotificationBinding
|
||||
@SingleClick
|
||||
override fun onClick(v: View) {
|
||||
try {
|
||||
val etSmsTemplate: EditText = binding!!.etSmsTemplate
|
||||
when (v.id) {
|
||||
R.id.btn_silent_period -> {
|
||||
OptionsPickerBuilder(context, OnOptionsSelectListener { _: View?, options1: Int, options2: Int, _: Int ->
|
||||
@ -229,51 +221,6 @@ class NotificationFragment : BaseFragment<FragmentTasksActionNotificationBinding
|
||||
}
|
||||
}
|
||||
|
||||
R.id.bt_insert_sender -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etSmsTemplate, getString(R.string.tag_from))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_content -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etSmsTemplate, getString(R.string.tag_sms))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_sender_app -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etSmsTemplate, getString(R.string.tag_package_name))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_uid -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etSmsTemplate, getString(R.string.tag_uid))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_title_app -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etSmsTemplate, getString(R.string.tag_title))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_content_app -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etSmsTemplate, getString(R.string.tag_msg))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_extra -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etSmsTemplate, getString(R.string.tag_card_slot))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_time -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etSmsTemplate, getString(R.string.tag_receive_time))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_device_name -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etSmsTemplate, getString(R.string.tag_device_name))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.btn_test -> {
|
||||
mCountDownHelper?.start()
|
||||
try {
|
||||
|
@ -4,7 +4,6 @@ import android.text.TextUtils
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.EditText
|
||||
import androidx.fragment.app.viewModels
|
||||
import com.google.gson.Gson
|
||||
import com.idormy.sms.forwarder.App.Companion.BARK_ENCRYPTION_ALGORITHM_MAP
|
||||
@ -124,6 +123,10 @@ class BarkFragment : BaseFragment<FragmentSendersBarkBinding?>(), View.OnClickLi
|
||||
}
|
||||
binding!!.spEncryptionAlgorithm.selectedIndex = 0
|
||||
|
||||
//创建标签按钮
|
||||
CommonUtils.createTagButtons(requireContext(), binding!!.glTitleTemplate, binding!!.etTitleTemplate)
|
||||
CommonUtils.createTagButtons(requireContext(), binding!!.glAutoCopyTemplate, binding!!.etAutoCopyTemplate)
|
||||
|
||||
//新增
|
||||
if (senderId <= 0) {
|
||||
titleBar?.setSubTitle(getString(R.string.add_sender))
|
||||
@ -179,14 +182,6 @@ class BarkFragment : BaseFragment<FragmentSendersBarkBinding?>(), View.OnClickLi
|
||||
}
|
||||
|
||||
override fun initListeners() {
|
||||
binding!!.btInsertSender.setOnClickListener(this)
|
||||
binding!!.btInsertExtra.setOnClickListener(this)
|
||||
binding!!.btInsertTime.setOnClickListener(this)
|
||||
binding!!.btInsertDeviceName.setOnClickListener(this)
|
||||
binding!!.btInsertSenderApp.setOnClickListener(this)
|
||||
binding!!.btInsertUid.setOnClickListener(this)
|
||||
binding!!.btInsertTitleApp.setOnClickListener(this)
|
||||
binding!!.btInsertContentApp.setOnClickListener(this)
|
||||
binding!!.btnTest.setOnClickListener(this)
|
||||
binding!!.btnDel.setOnClickListener(this)
|
||||
binding!!.btnSave.setOnClickListener(this)
|
||||
@ -196,48 +191,7 @@ class BarkFragment : BaseFragment<FragmentSendersBarkBinding?>(), View.OnClickLi
|
||||
@SingleClick
|
||||
override fun onClick(v: View) {
|
||||
try {
|
||||
val etTitleTemplate: EditText = binding!!.etTitleTemplate
|
||||
val etAutoCopyTemplate: EditText = binding!!.etAutoCopyTemplate
|
||||
when (v.id) {
|
||||
R.id.bt_insert_sender -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_from))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_extra -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_card_slot))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_time -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_receive_time))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_device_name -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_device_name))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_sender_app -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etAutoCopyTemplate, getString(R.string.tag_package_name))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_uid -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etAutoCopyTemplate, getString(R.string.tag_uid))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_title_app -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etAutoCopyTemplate, getString(R.string.tag_title))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_content_app -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etAutoCopyTemplate, getString(R.string.tag_msg))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.btn_test -> {
|
||||
mCountDownHelper?.start()
|
||||
|
@ -5,7 +5,6 @@ import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.CompoundButton
|
||||
import android.widget.EditText
|
||||
import android.widget.RadioGroup
|
||||
import androidx.fragment.app.viewModels
|
||||
import com.google.gson.Gson
|
||||
@ -96,6 +95,9 @@ class DingtalkGroupRobotFragment : BaseFragment<FragmentSendersDingtalkGroupRobo
|
||||
}
|
||||
})
|
||||
|
||||
//创建标签按钮
|
||||
CommonUtils.createTagButtons(requireContext(), binding!!.glTitleTemplate, binding!!.etTitleTemplate)
|
||||
|
||||
//新增
|
||||
if (senderId <= 0) {
|
||||
titleBar?.setSubTitle(getString(R.string.add_sender))
|
||||
@ -138,10 +140,6 @@ class DingtalkGroupRobotFragment : BaseFragment<FragmentSendersDingtalkGroupRobo
|
||||
}
|
||||
|
||||
override fun initListeners() {
|
||||
binding!!.btInsertSender.setOnClickListener(this)
|
||||
binding!!.btInsertExtra.setOnClickListener(this)
|
||||
binding!!.btInsertTime.setOnClickListener(this)
|
||||
binding!!.btInsertDeviceName.setOnClickListener(this)
|
||||
binding!!.btnTest.setOnClickListener(this)
|
||||
binding!!.btnDel.setOnClickListener(this)
|
||||
binding!!.btnSave.setOnClickListener(this)
|
||||
@ -168,27 +166,7 @@ class DingtalkGroupRobotFragment : BaseFragment<FragmentSendersDingtalkGroupRobo
|
||||
@SingleClick
|
||||
override fun onClick(v: View) {
|
||||
try {
|
||||
val etTitleTemplate: EditText = binding!!.etTitleTemplate
|
||||
when (v.id) {
|
||||
R.id.bt_insert_sender -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_from))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_extra -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_card_slot))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_time -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_receive_time))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_device_name -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_device_name))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.btn_test -> {
|
||||
mCountDownHelper?.start()
|
||||
|
@ -6,7 +6,6 @@ import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.CompoundButton
|
||||
import android.widget.EditText
|
||||
import android.widget.RadioGroup
|
||||
import androidx.fragment.app.viewModels
|
||||
import com.google.gson.Gson
|
||||
@ -19,7 +18,15 @@ import com.idormy.sms.forwarder.database.viewmodel.SenderViewModel
|
||||
import com.idormy.sms.forwarder.databinding.FragmentSendersDingtalkInnerRobotBinding
|
||||
import com.idormy.sms.forwarder.entity.MsgInfo
|
||||
import com.idormy.sms.forwarder.entity.setting.DingtalkInnerRobotSetting
|
||||
import com.idormy.sms.forwarder.utils.*
|
||||
import com.idormy.sms.forwarder.utils.CommonUtils
|
||||
import com.idormy.sms.forwarder.utils.EVENT_TOAST_ERROR
|
||||
import com.idormy.sms.forwarder.utils.KEY_SENDER_CLONE
|
||||
import com.idormy.sms.forwarder.utils.KEY_SENDER_ID
|
||||
import com.idormy.sms.forwarder.utils.KEY_SENDER_TEST
|
||||
import com.idormy.sms.forwarder.utils.KEY_SENDER_TYPE
|
||||
import com.idormy.sms.forwarder.utils.Log
|
||||
import com.idormy.sms.forwarder.utils.SettingUtils
|
||||
import com.idormy.sms.forwarder.utils.XToastUtils
|
||||
import com.idormy.sms.forwarder.utils.sender.DingtalkInnerRobotUtils
|
||||
import com.jeremyliao.liveeventbus.LiveEventBus
|
||||
import com.xuexiang.xaop.annotation.SingleClick
|
||||
@ -35,7 +42,7 @@ import io.reactivex.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.disposables.Disposable
|
||||
import io.reactivex.schedulers.Schedulers
|
||||
import java.net.Proxy
|
||||
import java.util.*
|
||||
import java.util.Date
|
||||
|
||||
@Page(name = "钉钉企业机器人")
|
||||
@Suppress("PrivatePropertyName")
|
||||
@ -90,6 +97,9 @@ class DingtalkInnerRobotFragment : BaseFragment<FragmentSendersDingtalkInnerRobo
|
||||
}
|
||||
})
|
||||
|
||||
//创建标签按钮
|
||||
CommonUtils.createTagButtons(requireContext(), binding!!.glTitleTemplate, binding!!.etTitleTemplate)
|
||||
|
||||
//新增
|
||||
if (senderId <= 0) {
|
||||
titleBar?.setSubTitle(getString(R.string.add_sender))
|
||||
@ -137,10 +147,6 @@ class DingtalkInnerRobotFragment : BaseFragment<FragmentSendersDingtalkInnerRobo
|
||||
}
|
||||
|
||||
override fun initListeners() {
|
||||
binding!!.btInsertSender.setOnClickListener(this)
|
||||
binding!!.btInsertExtra.setOnClickListener(this)
|
||||
binding!!.btInsertTime.setOnClickListener(this)
|
||||
binding!!.btInsertDeviceName.setOnClickListener(this)
|
||||
binding!!.btnTest.setOnClickListener(this)
|
||||
binding!!.btnDel.setOnClickListener(this)
|
||||
binding!!.btnSave.setOnClickListener(this)
|
||||
@ -176,27 +182,7 @@ class DingtalkInnerRobotFragment : BaseFragment<FragmentSendersDingtalkInnerRobo
|
||||
@SingleClick
|
||||
override fun onClick(v: View) {
|
||||
try {
|
||||
val etTitleTemplate: EditText = binding!!.etTitleTemplate
|
||||
when (v.id) {
|
||||
R.id.bt_insert_sender -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_from))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_extra -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_card_slot))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_time -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_receive_time))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_device_name -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_device_name))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.btn_test -> {
|
||||
mCountDownHelper?.start()
|
||||
|
@ -166,6 +166,10 @@ class EmailFragment : BaseFragment<FragmentSendersEmailBinding?>(), View.OnClick
|
||||
}
|
||||
}
|
||||
|
||||
//创建标签按钮
|
||||
CommonUtils.createTagButtons(requireContext(), binding!!.glTitleTemplate, binding!!.etTitleTemplate)
|
||||
CommonUtils.createTagButtons(requireContext(), binding!!.glNickname, binding!!.etNickname)
|
||||
|
||||
//新增
|
||||
if (senderId <= 0) {
|
||||
titleBar?.setSubTitle(getString(R.string.add_sender))
|
||||
@ -237,14 +241,6 @@ class EmailFragment : BaseFragment<FragmentSendersEmailBinding?>(), View.OnClick
|
||||
}
|
||||
|
||||
override fun initListeners() {
|
||||
binding!!.btInsertSenderToNickname.setOnClickListener(this)
|
||||
binding!!.btInsertExtraToNickname.setOnClickListener(this)
|
||||
binding!!.btInsertTimeToNickname.setOnClickListener(this)
|
||||
binding!!.btInsertDeviceNameToNickname.setOnClickListener(this)
|
||||
binding!!.btInsertSender.setOnClickListener(this)
|
||||
binding!!.btInsertExtra.setOnClickListener(this)
|
||||
binding!!.btInsertTime.setOnClickListener(this)
|
||||
binding!!.btInsertDeviceName.setOnClickListener(this)
|
||||
binding!!.btnTest.setOnClickListener(this)
|
||||
binding!!.btnDel.setOnClickListener(this)
|
||||
binding!!.btnSave.setOnClickListener(this)
|
||||
@ -260,48 +256,7 @@ class EmailFragment : BaseFragment<FragmentSendersEmailBinding?>(), View.OnClick
|
||||
@SingleClick
|
||||
override fun onClick(v: View) {
|
||||
try {
|
||||
val etNickname: EditText = binding!!.etNickname
|
||||
val etTitleTemplate: EditText = binding!!.etTitleTemplate
|
||||
when (v.id) {
|
||||
R.id.bt_insert_sender_to_nickname -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etNickname, getString(R.string.tag_from))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_extra_to_nickname -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etNickname, getString(R.string.tag_card_slot))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_time_to_nickname -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etNickname, getString(R.string.tag_receive_time))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_device_name_to_nickname -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etNickname, getString(R.string.tag_device_name))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_sender -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_from))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_extra -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_card_slot))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_time -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_receive_time))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_device_name -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_device_name))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.btn_test -> {
|
||||
mCountDownHelper?.start()
|
||||
|
@ -4,7 +4,6 @@ import android.text.TextUtils
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.EditText
|
||||
import androidx.fragment.app.viewModels
|
||||
import com.google.gson.Gson
|
||||
import com.google.gson.JsonParser
|
||||
@ -105,6 +104,10 @@ class FeishuAppFragment : BaseFragment<FragmentSendersFeishuAppBinding?>(), View
|
||||
}
|
||||
}
|
||||
|
||||
//创建标签按钮
|
||||
CommonUtils.createTagButtons(requireContext(), binding!!.glTitleTemplate, binding!!.etTitleTemplate)
|
||||
CommonUtils.createTagButtons(requireContext(), binding!!.glMessageCard, binding!!.etMessageCard)
|
||||
|
||||
//新增
|
||||
if (senderId <= 0) {
|
||||
titleBar?.setSubTitle(getString(R.string.add_sender))
|
||||
@ -150,15 +153,6 @@ class FeishuAppFragment : BaseFragment<FragmentSendersFeishuAppBinding?>(), View
|
||||
}
|
||||
|
||||
override fun initListeners() {
|
||||
binding!!.btInsertSenderToTitle.setOnClickListener(this)
|
||||
binding!!.btInsertExtraToTitle.setOnClickListener(this)
|
||||
binding!!.btInsertTimeToTitle.setOnClickListener(this)
|
||||
binding!!.btInsertDeviceNameToTitle.setOnClickListener(this)
|
||||
binding!!.btInsertSender.setOnClickListener(this)
|
||||
binding!!.btInsertContent.setOnClickListener(this)
|
||||
binding!!.btInsertExtra.setOnClickListener(this)
|
||||
binding!!.btInsertTime.setOnClickListener(this)
|
||||
binding!!.btInsertDeviceName.setOnClickListener(this)
|
||||
binding!!.btnTest.setOnClickListener(this)
|
||||
binding!!.btnDel.setOnClickListener(this)
|
||||
binding!!.btnSave.setOnClickListener(this)
|
||||
@ -168,53 +162,7 @@ class FeishuAppFragment : BaseFragment<FragmentSendersFeishuAppBinding?>(), View
|
||||
@SingleClick
|
||||
override fun onClick(v: View) {
|
||||
try {
|
||||
val etTitleTemplate: EditText = binding!!.etTitleTemplate
|
||||
val etMessageCard: EditText = binding!!.etMessageCard
|
||||
when (v.id) {
|
||||
R.id.bt_insert_sender_to_title -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_from))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_extra_to_title -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_card_slot))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_time_to_title -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_receive_time))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_device_name_to_title -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_device_name))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_sender -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etMessageCard, getString(R.string.tag_from))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_content -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etMessageCard, getString(R.string.tag_sms))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_extra -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etMessageCard, getString(R.string.tag_card_slot))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_time -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etMessageCard, getString(R.string.tag_receive_time))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_device_name -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etMessageCard, getString(R.string.tag_device_name))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.btn_test -> {
|
||||
mCountDownHelper?.start()
|
||||
|
@ -4,7 +4,6 @@ import android.text.TextUtils
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.EditText
|
||||
import androidx.fragment.app.viewModels
|
||||
import com.google.gson.Gson
|
||||
import com.google.gson.JsonParser
|
||||
@ -105,6 +104,10 @@ class FeishuFragment : BaseFragment<FragmentSendersFeishuBinding?>(), View.OnCli
|
||||
}
|
||||
}
|
||||
|
||||
//创建标签按钮
|
||||
CommonUtils.createTagButtons(requireContext(), binding!!.glTitleTemplate, binding!!.etTitleTemplate)
|
||||
CommonUtils.createTagButtons(requireContext(), binding!!.glMessageCard, binding!!.etMessageCard)
|
||||
|
||||
//新增
|
||||
if (senderId <= 0) {
|
||||
titleBar?.setSubTitle(getString(R.string.add_sender))
|
||||
@ -145,15 +148,6 @@ class FeishuFragment : BaseFragment<FragmentSendersFeishuBinding?>(), View.OnCli
|
||||
}
|
||||
|
||||
override fun initListeners() {
|
||||
binding!!.btInsertSenderToTitle.setOnClickListener(this)
|
||||
binding!!.btInsertExtraToTitle.setOnClickListener(this)
|
||||
binding!!.btInsertTimeToTitle.setOnClickListener(this)
|
||||
binding!!.btInsertDeviceNameToTitle.setOnClickListener(this)
|
||||
binding!!.btInsertSender.setOnClickListener(this)
|
||||
binding!!.btInsertContent.setOnClickListener(this)
|
||||
binding!!.btInsertExtra.setOnClickListener(this)
|
||||
binding!!.btInsertTime.setOnClickListener(this)
|
||||
binding!!.btInsertDeviceName.setOnClickListener(this)
|
||||
binding!!.btnTest.setOnClickListener(this)
|
||||
binding!!.btnDel.setOnClickListener(this)
|
||||
binding!!.btnSave.setOnClickListener(this)
|
||||
@ -163,53 +157,7 @@ class FeishuFragment : BaseFragment<FragmentSendersFeishuBinding?>(), View.OnCli
|
||||
@SingleClick
|
||||
override fun onClick(v: View) {
|
||||
try {
|
||||
val etTitleTemplate: EditText = binding!!.etTitleTemplate
|
||||
val etMessageCard: EditText = binding!!.etMessageCard
|
||||
when (v.id) {
|
||||
R.id.bt_insert_sender_to_title -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_from))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_extra_to_title -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_card_slot))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_time_to_title -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_receive_time))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_device_name_to_title -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_device_name))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_sender -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etMessageCard, getString(R.string.tag_from))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_content -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etMessageCard, getString(R.string.tag_sms))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_extra -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etMessageCard, getString(R.string.tag_card_slot))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_time -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etMessageCard, getString(R.string.tag_receive_time))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_device_name -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etMessageCard, getString(R.string.tag_device_name))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.btn_test -> {
|
||||
mCountDownHelper?.start()
|
||||
|
@ -4,7 +4,6 @@ import android.text.TextUtils
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.EditText
|
||||
import androidx.fragment.app.viewModels
|
||||
import com.google.gson.Gson
|
||||
import com.idormy.sms.forwarder.R
|
||||
@ -94,6 +93,9 @@ class GotifyFragment : BaseFragment<FragmentSendersGotifyBinding?>(), View.OnCli
|
||||
}
|
||||
})
|
||||
|
||||
//创建标签按钮
|
||||
CommonUtils.createTagButtons(requireContext(), binding!!.glTitleTemplate, binding!!.etTitleTemplate)
|
||||
|
||||
//新增
|
||||
if (senderId <= 0) {
|
||||
titleBar?.setSubTitle(getString(R.string.add_sender))
|
||||
@ -132,10 +134,6 @@ class GotifyFragment : BaseFragment<FragmentSendersGotifyBinding?>(), View.OnCli
|
||||
}
|
||||
|
||||
override fun initListeners() {
|
||||
binding!!.btInsertSender.setOnClickListener(this)
|
||||
binding!!.btInsertExtra.setOnClickListener(this)
|
||||
binding!!.btInsertTime.setOnClickListener(this)
|
||||
binding!!.btInsertDeviceName.setOnClickListener(this)
|
||||
binding!!.btnTest.setOnClickListener(this)
|
||||
binding!!.btnDel.setOnClickListener(this)
|
||||
binding!!.btnSave.setOnClickListener(this)
|
||||
@ -145,27 +143,7 @@ class GotifyFragment : BaseFragment<FragmentSendersGotifyBinding?>(), View.OnCli
|
||||
@SingleClick
|
||||
override fun onClick(v: View) {
|
||||
try {
|
||||
val etTitleTemplate: EditText = binding!!.etTitleTemplate
|
||||
when (v.id) {
|
||||
R.id.bt_insert_sender -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_from))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_extra -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_card_slot))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_time -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_receive_time))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_device_name -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_device_name))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.btn_test -> {
|
||||
mCountDownHelper?.start()
|
||||
|
@ -4,7 +4,6 @@ import android.text.TextUtils
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.EditText
|
||||
import android.widget.RadioGroup
|
||||
import androidx.fragment.app.viewModels
|
||||
import com.google.gson.Gson
|
||||
@ -95,6 +94,9 @@ class PushplusFragment : BaseFragment<FragmentSendersPushplusBinding?>(), View.O
|
||||
}
|
||||
})
|
||||
|
||||
//创建标签按钮
|
||||
CommonUtils.createTagButtons(requireContext(), binding!!.glTitleTemplate, binding!!.etTitleTemplate)
|
||||
|
||||
//新增
|
||||
if (senderId <= 0) {
|
||||
titleBar?.setSubTitle(getString(R.string.add_sender))
|
||||
@ -143,10 +145,6 @@ class PushplusFragment : BaseFragment<FragmentSendersPushplusBinding?>(), View.O
|
||||
}
|
||||
|
||||
override fun initListeners() {
|
||||
binding!!.btInsertSender.setOnClickListener(this)
|
||||
binding!!.btInsertExtra.setOnClickListener(this)
|
||||
binding!!.btInsertTime.setOnClickListener(this)
|
||||
binding!!.btInsertDeviceName.setOnClickListener(this)
|
||||
binding!!.btnTest.setOnClickListener(this)
|
||||
binding!!.btnDel.setOnClickListener(this)
|
||||
binding!!.btnSave.setOnClickListener(this)
|
||||
@ -165,27 +163,7 @@ class PushplusFragment : BaseFragment<FragmentSendersPushplusBinding?>(), View.O
|
||||
@SingleClick
|
||||
override fun onClick(v: View) {
|
||||
try {
|
||||
val etTitleTemplate: EditText = binding!!.etTitleTemplate
|
||||
when (v.id) {
|
||||
R.id.bt_insert_sender -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_from))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_extra -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_card_slot))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_time -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_receive_time))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.bt_insert_device_name -> {
|
||||
CommonUtils.insertOrReplaceText2Cursor(etTitleTemplate, getString(R.string.tag_device_name))
|
||||
return
|
||||
}
|
||||
|
||||
R.id.btn_test -> {
|
||||
mCountDownHelper?.start()
|
||||
|
@ -6,18 +6,29 @@ import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.pm.PackageManager
|
||||
import android.graphics.Rect
|
||||
import android.os.Build
|
||||
import android.text.SpannableString
|
||||
import android.text.SpannableStringBuilder
|
||||
import android.text.Spanned
|
||||
import android.text.TextUtils
|
||||
import android.text.method.LinkMovementMethod
|
||||
import android.text.style.ClickableSpan
|
||||
import android.util.TypedValue
|
||||
import android.view.View
|
||||
import android.widget.EditText
|
||||
import android.widget.GridLayout
|
||||
import android.widget.TextView
|
||||
import androidx.annotation.ColorInt
|
||||
import androidx.core.app.NotificationManagerCompat
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.idormy.sms.forwarder.App
|
||||
import com.idormy.sms.forwarder.App.Companion.APP_TAG_MAP
|
||||
import com.idormy.sms.forwarder.App.Companion.BATTERY_TAG_MAP
|
||||
import com.idormy.sms.forwarder.App.Companion.CALL_TAG_MAP
|
||||
import com.idormy.sms.forwarder.App.Companion.COMMON_TAG_MAP
|
||||
import com.idormy.sms.forwarder.App.Companion.LOCATION_TAG_MAP
|
||||
import com.idormy.sms.forwarder.App.Companion.NETWORK_TAG_MAP
|
||||
import com.idormy.sms.forwarder.App.Companion.SMS_TAG_MAP
|
||||
import com.idormy.sms.forwarder.R
|
||||
import com.idormy.sms.forwarder.core.webview.AgentWebActivity
|
||||
import com.idormy.sms.forwarder.core.webview.AgentWebFragment
|
||||
@ -35,6 +46,8 @@ import com.xuexiang.xui.widget.dialog.materialdialog.MaterialDialog.SingleButton
|
||||
import com.xuexiang.xui.widget.imageview.preview.PreviewBuilder
|
||||
import com.xuexiang.xutil.XUtil
|
||||
import com.xuexiang.xutil.common.StringUtils
|
||||
import com.xuexiang.xutil.resource.ResUtils.getColor
|
||||
import com.xuexiang.xutil.resource.ResUtils.getDrawable
|
||||
import com.xuexiang.xutil.resource.ResUtils.getString
|
||||
import java.net.Inet4Address
|
||||
import java.net.Inet6Address
|
||||
@ -338,38 +351,73 @@ class CommonUtils private constructor() {
|
||||
XUtil.exitApp()
|
||||
}
|
||||
|
||||
/*fun switchLanguage(oldLocale: Locale, newLocale: Locale) {
|
||||
val oldLang = if (TAG_LANG.contains(oldLocale.toString())) oldLocale.toString() else "en"
|
||||
val newLang = if (TAG_LANG.contains(newLocale.toString())) newLocale.toString() else "en"
|
||||
Log.i(App.TAG, "switchLanguage: oldLang=$oldLang, newLang=$newLang")
|
||||
// 动态创建标签按钮并设置点击事件(将标签插入指定输入框)
|
||||
fun createTagButtons(context: Context, gridLayout: GridLayout, editText: EditText, scene: String = "basic", excludeButtons: Array<String> = emptyArray()) {
|
||||
// 将排除的按钮转换成一个集合,方便查找
|
||||
val excludeSet = excludeButtons.toSet()
|
||||
|
||||
//替换自定义模板标签
|
||||
var smsTemplate = SettingUtils.smsTemplate
|
||||
//替换Rule.sms_template中的标签
|
||||
var ruleColumn = "sms_template"
|
||||
//替换Sender.json_setting中的标签
|
||||
var senderColumn = "json_setting"
|
||||
// 清空GridLayout中的所有视图
|
||||
gridLayout.removeAllViews()
|
||||
|
||||
for (i in TAG_LIST.indices) {
|
||||
val oldTag = TAG_LIST[i][oldLang].toString()
|
||||
val newTag = TAG_LIST[i][newLang].toString()
|
||||
if (oldTag == newTag) continue
|
||||
// 根据场景动态拼接所有按钮数据
|
||||
val allButtons = when (scene) {
|
||||
"sms" -> SMS_TAG_MAP
|
||||
"call" -> CALL_TAG_MAP
|
||||
"app" -> APP_TAG_MAP
|
||||
else -> CALL_TAG_MAP + SMS_TAG_MAP + APP_TAG_MAP
|
||||
}.toMutableMap()
|
||||
|
||||
smsTemplate = smsTemplate.replace(oldTag, newTag)
|
||||
ruleColumn = "REPLACE($ruleColumn, '$oldTag', '$newTag')"
|
||||
senderColumn = "REPLACE($senderColumn, '$oldTag', '$newTag')"
|
||||
if (SettingUtils.enableLocation) {
|
||||
allButtons += LOCATION_TAG_MAP
|
||||
}
|
||||
if (scene == "all") {
|
||||
allButtons += BATTERY_TAG_MAP
|
||||
allButtons += NETWORK_TAG_MAP
|
||||
}
|
||||
allButtons += COMMON_TAG_MAP
|
||||
|
||||
val btnBackground = getDrawable(R.drawable.rounded_button)
|
||||
val btnTextColor = getColor(android.R.color.white)
|
||||
|
||||
// 遍历所有按钮数据,过滤掉需要排除的按钮
|
||||
allButtons.forEach { (tag, lable) ->
|
||||
if (excludeSet.isNotEmpty() && excludeSet.contains(tag)) {
|
||||
allButtons.remove(tag)
|
||||
}
|
||||
|
||||
SettingUtils.smsTemplate = smsTemplate
|
||||
val button = TextView(context).apply {
|
||||
text = lable
|
||||
setOnClickListener {
|
||||
insertOrReplaceText2Cursor(editText, tag)
|
||||
}
|
||||
|
||||
val updateRuleSql = "UPDATE Rule SET sms_template = $ruleColumn WHERE sms_template != ''"
|
||||
Log.d(App.TAG, "updateRuleSql: $updateRuleSql")
|
||||
Core.rule.replaceTags(updateRuleSql)
|
||||
// 设置紧凑样式
|
||||
setTextSize(TypedValue.COMPLEX_UNIT_SP, 9f)
|
||||
maxLines = 1
|
||||
ellipsize = TextUtils.TruncateAt.END
|
||||
setPadding(5, 5, 5, 5)
|
||||
gravity = android.view.Gravity.CENTER
|
||||
background = btnBackground
|
||||
setTextColor(btnTextColor)
|
||||
|
||||
// 布局参数
|
||||
layoutParams = GridLayout.LayoutParams().apply {
|
||||
height = GridLayout.LayoutParams.WRAP_CONTENT
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
width = 0
|
||||
columnSpec = GridLayout.spec(GridLayout.UNDEFINED, 1f)
|
||||
} else {
|
||||
width = GridLayout.LayoutParams.WRAP_CONTENT
|
||||
}
|
||||
setMargins(8, 8, 8, 8)
|
||||
}
|
||||
}
|
||||
|
||||
gridLayout.addView(button)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
val updateSenderSql = "UPDATE Sender SET json_setting = $senderColumn WHERE type NOT IN (4, 5, 6, 7, 8, 14)"
|
||||
Log.d(App.TAG, "updateSenderSql: $updateSenderSql")
|
||||
Core.sender.replaceTags(updateSenderSql)
|
||||
}*/
|
||||
}
|
||||
|
||||
init {
|
||||
|
@ -376,65 +376,13 @@
|
||||
android:inputType="textMultiLine"
|
||||
app:met_clearButton="true" />
|
||||
|
||||
<LinearLayout
|
||||
<GridLayout
|
||||
android:id="@+id/gl_sms_template"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_sender"
|
||||
style="@style/insertButtonStyle"
|
||||
android:text="@string/insert_sender" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_content"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_content" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_extra"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_extra" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_sender_app"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_sender_app" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_uid"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_uid" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_title_app"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_title_app" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_content_app"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_content_app" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_time"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_time" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_device_name"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_device_name" />
|
||||
|
||||
</LinearLayout>
|
||||
android:layout_gravity="center"
|
||||
android:columnCount="4"
|
||||
android:orientation="horizontal" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
@ -566,8 +514,8 @@
|
||||
|
||||
<HorizontalScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_marginTop="3dp"
|
||||
android:layout_height="wrap_content">
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="3dp">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
|
@ -293,35 +293,13 @@
|
||||
android:singleLine="true"
|
||||
app:met_clearButton="true" />
|
||||
|
||||
<LinearLayout
|
||||
<GridLayout
|
||||
android:id="@+id/gl_title_template"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_sender"
|
||||
style="@style/insertButtonStyle"
|
||||
android:text="@string/insert_sender" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_extra"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_extra" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_time"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_time" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_device_name"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_device_name" />
|
||||
|
||||
</LinearLayout>
|
||||
android:layout_gravity="center"
|
||||
android:columnCount="4"
|
||||
android:orientation="horizontal" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
@ -361,36 +339,13 @@
|
||||
android:singleLine="true"
|
||||
app:met_clearButton="true" />
|
||||
|
||||
<LinearLayout
|
||||
<GridLayout
|
||||
android:id="@+id/gl_auto_copy_template"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_title_app"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_title_app" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_content_app"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_content_app" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_sender_app"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_sender_app" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_uid"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_uid" />
|
||||
|
||||
</LinearLayout>
|
||||
android:layout_gravity="center"
|
||||
android:columnCount="4"
|
||||
android:orientation="horizontal" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
@ -253,35 +253,13 @@
|
||||
android:singleLine="true"
|
||||
app:met_clearButton="true" />
|
||||
|
||||
<LinearLayout
|
||||
<GridLayout
|
||||
android:id="@+id/gl_title_template"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_sender"
|
||||
style="@style/insertButtonStyle"
|
||||
android:text="@string/insert_sender" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_extra"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_extra" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_time"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_time" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_device_name"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_device_name" />
|
||||
|
||||
</LinearLayout>
|
||||
android:layout_gravity="center"
|
||||
android:columnCount="4"
|
||||
android:orientation="horizontal" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
@ -230,35 +230,13 @@
|
||||
android:singleLine="true"
|
||||
app:met_clearButton="true" />
|
||||
|
||||
<LinearLayout
|
||||
<GridLayout
|
||||
android:id="@+id/gl_title_template"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_sender"
|
||||
style="@style/insertButtonStyle"
|
||||
android:text="@string/insert_sender" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_extra"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_extra" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_time"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_time" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_device_name"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_device_name" />
|
||||
|
||||
</LinearLayout>
|
||||
android:layout_gravity="center"
|
||||
android:columnCount="4"
|
||||
android:orientation="horizontal" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
@ -149,35 +149,13 @@
|
||||
android:singleLine="true"
|
||||
app:met_clearButton="true" />
|
||||
|
||||
<LinearLayout
|
||||
<GridLayout
|
||||
android:id="@+id/gl_nickname"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_sender_to_nickname"
|
||||
style="@style/insertButtonStyle"
|
||||
android:text="@string/insert_sender" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_extra_to_nickname"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_extra" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_time_to_nickname"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_time" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_device_name_to_nickname"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_device_name" />
|
||||
|
||||
</LinearLayout>
|
||||
android:layout_gravity="center"
|
||||
android:columnCount="4"
|
||||
android:orientation="horizontal" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
@ -520,35 +498,13 @@
|
||||
android:singleLine="true"
|
||||
app:met_clearButton="true" />
|
||||
|
||||
<LinearLayout
|
||||
<GridLayout
|
||||
android:id="@+id/gl_title_template"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_sender"
|
||||
style="@style/insertButtonStyle"
|
||||
android:text="@string/insert_sender" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_extra"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_extra" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_time"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_time" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_device_name"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_device_name" />
|
||||
|
||||
</LinearLayout>
|
||||
android:layout_gravity="center"
|
||||
android:columnCount="4"
|
||||
android:orientation="horizontal" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
@ -158,35 +158,13 @@
|
||||
android:singleLine="true"
|
||||
app:met_clearButton="true" />
|
||||
|
||||
<LinearLayout
|
||||
<GridLayout
|
||||
android:id="@+id/gl_title_template"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_sender_to_title"
|
||||
style="@style/insertButtonStyle"
|
||||
android:text="@string/insert_sender" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_extra_to_title"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_extra" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_time_to_title"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_time" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_device_name_to_title"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_device_name" />
|
||||
|
||||
</LinearLayout>
|
||||
android:layout_gravity="center"
|
||||
android:columnCount="4"
|
||||
android:orientation="horizontal" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
@ -230,41 +208,13 @@
|
||||
android:text=""
|
||||
tools:ignore="RtlHardcoded,SpeakableTextPresentCheck" />
|
||||
|
||||
<LinearLayout
|
||||
<GridLayout
|
||||
android:id="@+id/gl_message_card"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_sender"
|
||||
style="@style/insertButtonStyle"
|
||||
android:text="@string/insert_sender" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_content"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="3dp"
|
||||
android:text="@string/insert_content" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_extra"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="3dp"
|
||||
android:text="@string/insert_extra" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_time"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="3dp"
|
||||
android:text="@string/insert_time" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_device_name"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="3dp"
|
||||
android:text="@string/insert_device_name" />
|
||||
|
||||
</LinearLayout>
|
||||
android:layout_gravity="center"
|
||||
android:columnCount="4"
|
||||
android:orientation="horizontal" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
@ -235,35 +235,13 @@
|
||||
android:singleLine="true"
|
||||
app:met_clearButton="true" />
|
||||
|
||||
<LinearLayout
|
||||
<GridLayout
|
||||
android:id="@+id/gl_title_template"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_sender_to_title"
|
||||
style="@style/insertButtonStyle"
|
||||
android:text="@string/insert_sender" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_extra_to_title"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_extra" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_time_to_title"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_time" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_device_name_to_title"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_device_name" />
|
||||
|
||||
</LinearLayout>
|
||||
android:layout_gravity="center"
|
||||
android:columnCount="4"
|
||||
android:orientation="horizontal" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
@ -307,41 +285,13 @@
|
||||
android:text=""
|
||||
tools:ignore="RtlHardcoded,SpeakableTextPresentCheck" />
|
||||
|
||||
<LinearLayout
|
||||
<GridLayout
|
||||
android:id="@+id/gl_message_card"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_sender"
|
||||
style="@style/insertButtonStyle"
|
||||
android:text="@string/insert_sender" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_content"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="3dp"
|
||||
android:text="@string/insert_content" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_extra"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="3dp"
|
||||
android:text="@string/insert_extra" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_time"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="3dp"
|
||||
android:text="@string/insert_time" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_device_name"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="3dp"
|
||||
android:text="@string/insert_device_name" />
|
||||
|
||||
</LinearLayout>
|
||||
android:layout_gravity="center"
|
||||
android:columnCount="4"
|
||||
android:orientation="horizontal" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
@ -112,35 +112,13 @@
|
||||
android:singleLine="true"
|
||||
app:met_clearButton="true" />
|
||||
|
||||
<LinearLayout
|
||||
<GridLayout
|
||||
android:id="@+id/gl_title_template"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_sender"
|
||||
style="@style/insertButtonStyle"
|
||||
android:text="@string/insert_sender" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_extra"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_extra" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_time"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_time" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_device_name"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_device_name" />
|
||||
|
||||
</LinearLayout>
|
||||
android:layout_gravity="center"
|
||||
android:columnCount="4"
|
||||
android:orientation="horizontal" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
@ -286,35 +286,13 @@
|
||||
android:singleLine="true"
|
||||
app:met_clearButton="true" />
|
||||
|
||||
<LinearLayout
|
||||
<GridLayout
|
||||
android:id="@+id/gl_title_template"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_sender"
|
||||
style="@style/insertButtonStyle"
|
||||
android:text="@string/insert_sender" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_extra"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_extra" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_time"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_time" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_device_name"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_device_name" />
|
||||
|
||||
</LinearLayout>
|
||||
android:layout_gravity="center"
|
||||
android:columnCount="4"
|
||||
android:orientation="horizontal" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
@ -1742,41 +1742,13 @@
|
||||
android:text=""
|
||||
tools:ignore="RtlHardcoded,SpeakableTextPresentCheck" />
|
||||
|
||||
<LinearLayout
|
||||
<GridLayout
|
||||
android:id="@+id/gl_sms_template"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_sender"
|
||||
style="@style/insertButtonStyle"
|
||||
android:text="@string/insert_sender" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_content"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="3dp"
|
||||
android:text="@string/insert_content" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_extra"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="3dp"
|
||||
android:text="@string/insert_extra" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_time"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="3dp"
|
||||
android:text="@string/insert_time" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_device_name"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="3dp"
|
||||
android:text="@string/insert_device_name" />
|
||||
|
||||
</LinearLayout>
|
||||
android:layout_gravity="center"
|
||||
android:columnCount="4"
|
||||
android:orientation="horizontal" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
@ -161,65 +161,13 @@
|
||||
android:inputType="textMultiLine"
|
||||
app:met_clearButton="true" />
|
||||
|
||||
<LinearLayout
|
||||
<GridLayout
|
||||
android:id="@+id/gl_sms_template"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_sender"
|
||||
style="@style/insertButtonStyle"
|
||||
android:text="@string/insert_sender" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_content"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_content" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_extra"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_extra" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_sender_app"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_sender_app" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_uid"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_uid" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_title_app"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_title_app" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_content_app"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_content_app" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_time"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_time" />
|
||||
|
||||
<com.xuexiang.xui.widget.button.shadowbutton.RippleShadowShadowButton
|
||||
android:id="@+id/bt_insert_device_name"
|
||||
style="@style/insertButtonStyle"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/insert_device_name" />
|
||||
|
||||
</LinearLayout>
|
||||
android:layout_gravity="center"
|
||||
android:columnCount="4"
|
||||
android:orientation="horizontal" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
@ -1,5 +1,33 @@
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<string name="insert_tag_from">Phone Number</string>
|
||||
<string name="insert_tag_sms">SMS Content</string>
|
||||
<string name="insert_tag_package_name">Package Name</string>
|
||||
<string name="insert_tag_app_name">App Name</string>
|
||||
<string name="insert_tag_title">Inform Title</string>
|
||||
<string name="insert_tag_msg">Inform Content</string>
|
||||
<string name="insert_tag_card_slot">SIM Label</string>
|
||||
<string name="insert_tag_card_subid">SIM SubId</string>
|
||||
<string name="insert_tag_receive_time">Receive Time</string>
|
||||
<string name="insert_tag_current_time">Current Time</string>
|
||||
<string name="insert_tag_device_name">Device Name</string>
|
||||
<string name="insert_tag_app_version">SmsF Version</string>
|
||||
<string name="insert_tag_call_type">Call Type</string>
|
||||
<string name="insert_tag_location">Location</string>
|
||||
<string name="insert_tag_location_longitude">Longitude</string>
|
||||
<string name="insert_tag_location_latitude">Latitude</string>
|
||||
<string name="insert_tag_location_address">Address</string>
|
||||
<string name="insert_tag_battery_pct">Battery Percentage</string>
|
||||
<string name="insert_tag_battery_status">Battery Status</string>
|
||||
<string name="insert_tag_battery_plugged">Charging Method</string>
|
||||
<string name="insert_tag_battery_info">Complete Battery Info</string>
|
||||
<string name="insert_tag_battery_info_simple">Simplified Battery Info</string>
|
||||
<string name="insert_tag_uid">UID</string>
|
||||
<string name="insert_tag_ipv4">Public IPv4</string>
|
||||
<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="type_param_sms">Sms</string>
|
||||
<string name="type_param_call">Call</string>
|
||||
<string name="type_param_app">App</string>
|
||||
@ -223,8 +251,8 @@
|
||||
<string name="invalid_wework_agent">CoreID, AgentID, and Secret cannot be empty</string>
|
||||
<string name="invalid_dingtalk_inner_robot">AgentId, AppKey, AppSecret, and UserIds cannot be empty</string>
|
||||
<string name="invalid_phone_num">The receiving phone number cannot be empty</string>
|
||||
<string name="invalid_multi_match">Malformed multiple match rule line %s</string>
|
||||
<string name="invalid_regex_replace">Incorrect format on line %s of regex replacement</string>
|
||||
<string name="invalid_multi_match">Malformed multiple match rule line %d</string>
|
||||
<string name="invalid_regex_replace">Incorrect format on line %d of regex replacement</string>
|
||||
<string name="invalid_message_card">The Message Card Json is invalid.</string>
|
||||
<string name="email_host">Host</string>
|
||||
<string name="smtp_port">Port</string>
|
||||
@ -318,14 +346,6 @@
|
||||
<string name="custom_template">Custom templates</string>
|
||||
<string name="custom_template_tips">Tip: Insert labels as needed; Leave blank to apply default template</string>
|
||||
<string name="insert_sender">Phone</string>
|
||||
<string name="insert_sender_app">PackageName</string>
|
||||
<string name="insert_uid">UID</string>
|
||||
<string name="insert_content">SMS</string>
|
||||
<string name="insert_title_app">InformTitle</string>
|
||||
<string name="insert_content_app">InformContent</string>
|
||||
<string name="insert_extra">SIM</string>
|
||||
<string name="insert_time">Time</string>
|
||||
<string name="insert_device_name">Device</string>
|
||||
<string name="battery_setting">Battery Optimization</string>
|
||||
<string name="battery_setting_tips">Set it to manual management, including automatic startup, associated startup, and background running</string>
|
||||
<string name="unknown_number">Unknown Number</string>
|
||||
@ -455,7 +475,7 @@
|
||||
<string name="interval_label">Increasing Interval</string>
|
||||
<string name="timeout_label">Single Timeout</string>
|
||||
<string name="seconds">secs</string>
|
||||
<string name="seconds_n">%s sec</string>
|
||||
<string name="seconds_n">%d sec</string>
|
||||
<string name="retry_label">Max Retries</string>
|
||||
<string name="test_sender_sms">[%s] Congratulations, the sender test is successful, please continue to add forwarding rules!</string>
|
||||
<string name="test_sender_name">Test Channel</string>
|
||||
|
@ -1,5 +1,33 @@
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<string name="insert_tag_from">来源号码</string>
|
||||
<string name="insert_tag_sms">短信内容</string>
|
||||
<string name="insert_tag_package_name">APP包名</string>
|
||||
<string name="insert_tag_app_name">APP应用名</string>
|
||||
<string name="insert_tag_title">通知标题</string>
|
||||
<string name="insert_tag_msg">通知内容</string>
|
||||
<string name="insert_tag_card_slot">卡槽备注</string>
|
||||
<string name="insert_tag_card_subid">卡槽主键</string>
|
||||
<string name="insert_tag_receive_time">接收时间</string>
|
||||
<string name="insert_tag_current_time">当前时间</string>
|
||||
<string name="insert_tag_device_name">设备名称</string>
|
||||
<string name="insert_tag_app_version">SmsF版本</string>
|
||||
<string name="insert_tag_call_type">通话类型</string>
|
||||
<string name="insert_tag_location">定位信息</string>
|
||||
<string name="insert_tag_location_longitude">定位经度</string>
|
||||
<string name="insert_tag_location_latitude">定位维度</string>
|
||||
<string name="insert_tag_location_address">定位地址</string>
|
||||
<string name="insert_tag_battery_pct">电池电量</string>
|
||||
<string name="insert_tag_battery_status">电池状态</string>
|
||||
<string name="insert_tag_battery_plugged">充电方式</string>
|
||||
<string name="insert_tag_battery_info">电池完整信息</string>
|
||||
<string name="insert_tag_battery_info_simple">电池简单信息</string>
|
||||
<string name="insert_tag_uid">用户UID</string>
|
||||
<string name="insert_tag_ipv4">公网IPv4</string>
|
||||
<string name="insert_tag_ipv6">公网IPv6</string>
|
||||
<string name="insert_tag_ip_list">IP地址列表</string>
|
||||
<string name="insert_tag_net_type">网络状态</string>
|
||||
|
||||
<string name="type_param_sms">短信</string>
|
||||
<string name="type_param_call">通话</string>
|
||||
<string name="type_param_app">应用</string>
|
||||
@ -224,8 +252,8 @@
|
||||
<string name="invalid_wework_agent">企业ID、AgentID、Secret都不能为空</string>
|
||||
<string name="invalid_dingtalk_inner_robot">AgentId、AppKey、AppSecret、UserIds都不能为空</string>
|
||||
<string name="invalid_phone_num">接收手机号不能为空</string>
|
||||
<string name="invalid_multi_match">多重匹配规则的第 %s 行格式有误</string>
|
||||
<string name="invalid_regex_replace">正则替换内容的第 %s 行格式有误</string>
|
||||
<string name="invalid_multi_match">多重匹配规则的第 %d 行格式有误</string>
|
||||
<string name="invalid_regex_replace">正则替换内容的第 %d 行格式有误</string>
|
||||
<string name="invalid_message_card">自定义消息卡片Json不合法</string>
|
||||
<string name="email_host">主机</string>
|
||||
<string name="smtp_port">端口</string>
|
||||
@ -319,14 +347,6 @@
|
||||
<string name="custom_template">转发信息模版</string>
|
||||
<string name="custom_template_tips">Tip:按需插入内容标签;留空使用默认模版</string>
|
||||
<string name="insert_sender">来源号码</string>
|
||||
<string name="insert_sender_app">APP包名</string>
|
||||
<string name="insert_uid">UID</string>
|
||||
<string name="insert_content">短信内容</string>
|
||||
<string name="insert_title_app">通知标题</string>
|
||||
<string name="insert_content_app">通知内容</string>
|
||||
<string name="insert_extra">卡槽信息</string>
|
||||
<string name="insert_time">接收时间</string>
|
||||
<string name="insert_device_name">设备名称</string>
|
||||
<string name="battery_setting">忽略电池优化设置</string>
|
||||
<string name="battery_setting_tips">请设置为手动管理:允许自启动、允许关联启动、允许后台运行</string>
|
||||
<string name="unknown_number">未知号码</string>
|
||||
@ -456,7 +476,7 @@
|
||||
<string name="interval_label">递增间隔</string>
|
||||
<string name="timeout_label">单次超时</string>
|
||||
<string name="seconds">秒</string>
|
||||
<string name="seconds_n">%s秒</string>
|
||||
<string name="seconds_n">%d秒</string>
|
||||
<string name="retry_label">最多重试</string>
|
||||
<string name="test_sender_sms">【%s】恭喜您,该发送通道测试成功,请继续添加转发规则!</string>
|
||||
<string name="test_sender_name">测试通道</string>
|
||||
|
@ -1,5 +1,33 @@
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<string name="insert_tag_from">來源號碼</string>
|
||||
<string name="insert_tag_sms">簡訊內容</string>
|
||||
<string name="insert_tag_package_name">APP包名</string>
|
||||
<string name="insert_tag_app_name">APP應用名</string>
|
||||
<string name="insert_tag_title">通知標題</string>
|
||||
<string name="insert_tag_msg">通知內容</string>
|
||||
<string name="insert_tag_card_slot">卡槽備註</string>
|
||||
<string name="insert_tag_card_subid">卡槽主鍵</string>
|
||||
<string name="insert_tag_receive_time">接收時間</string>
|
||||
<string name="insert_tag_current_time">當前時間</string>
|
||||
<string name="insert_tag_device_name">設備名稱</string>
|
||||
<string name="insert_tag_app_version">SmsF版本</string>
|
||||
<string name="insert_tag_call_type">通話類型</string>
|
||||
<string name="insert_tag_location">定位資訊</string>
|
||||
<string name="insert_tag_location_longitude">定位經度</string>
|
||||
<string name="insert_tag_location_latitude">定位緯度</string>
|
||||
<string name="insert_tag_location_address">定位地址</string>
|
||||
<string name="insert_tag_battery_pct">電池電量</string>
|
||||
<string name="insert_tag_battery_status">電池狀態</string>
|
||||
<string name="insert_tag_battery_plugged">充電方式</string>
|
||||
<string name="insert_tag_battery_info">電池完整資訊</string>
|
||||
<string name="insert_tag_battery_info_simple">電池簡單資訊</string>
|
||||
<string name="insert_tag_uid">用戶UID</string>
|
||||
<string name="insert_tag_ipv4">公網IPv4</string>
|
||||
<string name="insert_tag_ipv6">公網IPv6</string>
|
||||
<string name="insert_tag_ip_list">IP地址列表</string>
|
||||
<string name="insert_tag_net_type">網路狀態</string>
|
||||
|
||||
<string name="type_param_sms">簡訊</string>
|
||||
<string name="type_param_call">通話</string>
|
||||
<string name="type_param_app">應用</string>
|
||||
@ -217,8 +245,8 @@
|
||||
<string name="invalid_wework_agent">企業ID、AgentID、Secret都不能為空</string>
|
||||
<string name="invalid_dingtalk_inner_robot">AgentId、AppKey、AppSecret、UserIds都不能為空</string>
|
||||
<string name="invalid_phone_num">接收手機號不能為空</string>
|
||||
<string name="invalid_multi_match">多重匹配規則的第 %s 行格式有誤</string>
|
||||
<string name="invalid_regex_replace">正則替換內容的第 %s 行格式有誤</string>
|
||||
<string name="invalid_multi_match">多重匹配規則的第 %d 行格式有誤</string>
|
||||
<string name="invalid_regex_replace">正則替換內容的第 %d 行格式有誤</string>
|
||||
<string name="invalid_message_card">自定義消息卡片Json不合法</string>
|
||||
<string name="email_host">主機</string>
|
||||
<string name="smtp_port">端口</string>
|
||||
@ -312,14 +340,6 @@
|
||||
<string name="custom_template">轉發信息模版</string>
|
||||
<string name="custom_template_tips">Tip:按需插入內容標籤;留空使用默認模版</string>
|
||||
<string name="insert_sender">來源號碼</string>
|
||||
<string name="insert_sender_app">APP包名</string>
|
||||
<string name="insert_uid">UID</string>
|
||||
<string name="insert_content">簡訊內容</string>
|
||||
<string name="insert_title_app">通知標題</string>
|
||||
<string name="insert_content_app">通知內容</string>
|
||||
<string name="insert_extra">卡槽信息</string>
|
||||
<string name="insert_time">接收時間</string>
|
||||
<string name="insert_device_name">裝置名稱</string>
|
||||
<string name="battery_setting">忽略電池優化設置</string>
|
||||
<string name="battery_setting_tips">請設置為手動管理:允許自啟動、允許關聯啟動、允許後台運行</string>
|
||||
<string name="unknown_number">未知號碼</string>
|
||||
@ -449,7 +469,7 @@
|
||||
<string name="interval_label">遞增間隔</string>
|
||||
<string name="timeout_label">單次超時</string>
|
||||
<string name="seconds">秒</string>
|
||||
<string name="seconds_n">%s秒</string>
|
||||
<string name="seconds_n">%d秒</string>
|
||||
<string name="retry_label">最多重試</string>
|
||||
<string name="test_sender_sms">【%s】恭喜您,該發送通道測試成功,請繼續添加轉發規則!</string>
|
||||
<string name="test_sender_name">測試通道</string>
|
||||
|
@ -27,6 +27,34 @@
|
||||
<string name="tag_ip_list" translatable="false">{{IP_LIST}}</string>
|
||||
<string name="tag_net_type" translatable="false">{{NET_TYPE}}</string>
|
||||
|
||||
<string name="insert_tag_from">来源号码</string>
|
||||
<string name="insert_tag_sms">短信内容</string>
|
||||
<string name="insert_tag_package_name">APP包名</string>
|
||||
<string name="insert_tag_app_name">APP应用名</string>
|
||||
<string name="insert_tag_title">通知标题</string>
|
||||
<string name="insert_tag_msg">通知内容</string>
|
||||
<string name="insert_tag_card_slot">卡槽备注</string>
|
||||
<string name="insert_tag_card_subid">卡槽主键</string>
|
||||
<string name="insert_tag_receive_time">接收时间</string>
|
||||
<string name="insert_tag_current_time">当前时间</string>
|
||||
<string name="insert_tag_device_name">设备名称</string>
|
||||
<string name="insert_tag_app_version">SmsF版本</string>
|
||||
<string name="insert_tag_call_type">通话类型</string>
|
||||
<string name="insert_tag_location">定位信息</string>
|
||||
<string name="insert_tag_location_longitude">定位经度</string>
|
||||
<string name="insert_tag_location_latitude">定位维度</string>
|
||||
<string name="insert_tag_location_address">定位地址</string>
|
||||
<string name="insert_tag_battery_pct">电池电量</string>
|
||||
<string name="insert_tag_battery_status">电池状态</string>
|
||||
<string name="insert_tag_battery_plugged">充电方式</string>
|
||||
<string name="insert_tag_battery_info">电池完整信息</string>
|
||||
<string name="insert_tag_battery_info_simple">电池简单信息</string>
|
||||
<string name="insert_tag_uid">用户UID</string>
|
||||
<string name="insert_tag_ipv4">公网IPv4</string>
|
||||
<string name="insert_tag_ipv6">公网IPv6</string>
|
||||
<string name="insert_tag_ip_list">IP地址列表</string>
|
||||
<string name="insert_tag_net_type">网络状态</string>
|
||||
|
||||
<string name="type_param_sms">短信</string>
|
||||
<string name="type_param_call">通话</string>
|
||||
<string name="type_param_app">应用</string>
|
||||
@ -251,8 +279,8 @@
|
||||
<string name="invalid_wework_agent">企业ID、AgentID、Secret都不能为空</string>
|
||||
<string name="invalid_dingtalk_inner_robot">AgentId、AppKey、AppSecret、UserIds都不能为空</string>
|
||||
<string name="invalid_phone_num">接收手机号不能为空</string>
|
||||
<string name="invalid_multi_match">多重匹配规则的第 %s 行格式有误</string>
|
||||
<string name="invalid_regex_replace">正则替换内容的第 %s 行格式有误</string>
|
||||
<string name="invalid_multi_match">多重匹配规则的第 %d 行格式有误</string>
|
||||
<string name="invalid_regex_replace">正则替换内容的第 %d 行格式有误</string>
|
||||
<string name="invalid_message_card">自定义消息卡片Json不合法</string>
|
||||
<string name="email_host">主机</string>
|
||||
<string name="smtp_port">端口</string>
|
||||
@ -346,14 +374,6 @@
|
||||
<string name="custom_template">转发信息模版</string>
|
||||
<string name="custom_template_tips">Tip:按需插入内容标签;留空使用默认模版</string>
|
||||
<string name="insert_sender">来源号码</string>
|
||||
<string name="insert_sender_app">APP包名</string>
|
||||
<string name="insert_uid">UID</string>
|
||||
<string name="insert_content">短信内容</string>
|
||||
<string name="insert_title_app">通知标题</string>
|
||||
<string name="insert_content_app">通知内容</string>
|
||||
<string name="insert_extra">卡槽信息</string>
|
||||
<string name="insert_time">接收时间</string>
|
||||
<string name="insert_device_name">设备名称</string>
|
||||
<string name="battery_setting">忽略电池优化设置</string>
|
||||
<string name="battery_setting_tips">请设置为手动管理:允许自启动、允许关联启动、允许后台运行</string>
|
||||
<string name="unknown_number">未知号码</string>
|
||||
@ -483,7 +503,7 @@
|
||||
<string name="interval_label">递增间隔</string>
|
||||
<string name="timeout_label">单次超时</string>
|
||||
<string name="seconds">秒</string>
|
||||
<string name="seconds_n">%s秒</string>
|
||||
<string name="seconds_n">%d秒</string>
|
||||
<string name="retry_label">最多重试</string>
|
||||
<string name="test_sender_sms">【%s】恭喜您,该发送通道测试成功,请继续添加转发规则!</string>
|
||||
<string name="test_sender_name">测试通道</string>
|
||||
|
Loading…
x
Reference in New Issue
Block a user