From ad89482b4f0e01e66ab8d80ccde99a6daf3b2513 Mon Sep 17 00:00:00 2001 From: Naccl Date: Thu, 13 Jan 2022 12:36:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=9A=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 自定义模板时,将标签插入光标位置或替换选中的文本 --- .../idormy/sms/forwarder/RuleActivity.java | 20 ++++++++++++------- .../idormy/sms/forwarder/SettingActivity.java | 16 ++++++++++----- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/idormy/sms/forwarder/RuleActivity.java b/app/src/main/java/com/idormy/sms/forwarder/RuleActivity.java index 97fff669..0048efcd 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/RuleActivity.java +++ b/app/src/main/java/com/idormy/sms/forwarder/RuleActivity.java @@ -374,49 +374,49 @@ public class RuleActivity extends AppCompatActivity { buttonInsertSender.setOnClickListener(view -> { textSmsTemplate.setFocusable(true); textSmsTemplate.requestFocus(); - textSmsTemplate.append("{{来源号码}}"); + insertOrReplaceText2Cursor(textSmsTemplate, "{{来源号码}}"); }); Button buttonInsertContent = view1.findViewById(R.id.bt_insert_content); buttonInsertContent.setOnClickListener(view -> { textSmsTemplate.setFocusable(true); textSmsTemplate.requestFocus(); - textSmsTemplate.append("{{短信内容}}"); + insertOrReplaceText2Cursor(textSmsTemplate, "{{短信内容}}"); }); Button buttonInsertSenderApp = view1.findViewById(R.id.bt_insert_sender_app); buttonInsertSenderApp.setOnClickListener(view -> { textSmsTemplate.setFocusable(true); textSmsTemplate.requestFocus(); - textSmsTemplate.append("{{APP包名}}"); + insertOrReplaceText2Cursor(textSmsTemplate, "{{APP包名}}"); }); Button buttonInsertContentApp = view1.findViewById(R.id.bt_insert_content_app); buttonInsertContentApp.setOnClickListener(view -> { textSmsTemplate.setFocusable(true); textSmsTemplate.requestFocus(); - textSmsTemplate.append("{{通知内容}}"); + insertOrReplaceText2Cursor(textSmsTemplate, "{{通知内容}}"); }); Button buttonInsertExtra = view1.findViewById(R.id.bt_insert_extra); buttonInsertExtra.setOnClickListener(view -> { textSmsTemplate.setFocusable(true); textSmsTemplate.requestFocus(); - textSmsTemplate.append("{{卡槽信息}}"); + insertOrReplaceText2Cursor(textSmsTemplate, "{{卡槽信息}}"); }); Button buttonInsertTime = view1.findViewById(R.id.bt_insert_time); buttonInsertTime.setOnClickListener(view -> { textSmsTemplate.setFocusable(true); textSmsTemplate.requestFocus(); - textSmsTemplate.append("{{接收时间}}"); + insertOrReplaceText2Cursor(textSmsTemplate, "{{接收时间}}"); }); Button buttonInsertDeviceName = view1.findViewById(R.id.bt_insert_device_name); buttonInsertDeviceName.setOnClickListener(view -> { textSmsTemplate.setFocusable(true); textSmsTemplate.requestFocus(); - textSmsTemplate.append("{{设备名称}}"); + insertOrReplaceText2Cursor(textSmsTemplate, "{{设备名称}}"); }); //正则替换 @@ -433,6 +433,12 @@ public class RuleActivity extends AppCompatActivity { } + private void insertOrReplaceText2Cursor(EditText editText, String str) { + int start = Math.max(editText.getSelectionStart(), 0); + int end = Math.max(editText.getSelectionEnd(), 0); + editText.getText().replace(Math.min(start, end), Math.max(start, end), str, 0, str.length()); + } + //当更新选择的字段的时候,更新之下各个选项的状态 // 如果设置了转发全部,禁用选择模式和匹配值输入 // 如果设置了多重规则,选择模式置为是 diff --git a/app/src/main/java/com/idormy/sms/forwarder/SettingActivity.java b/app/src/main/java/com/idormy/sms/forwarder/SettingActivity.java index ca07b181..f06aabca 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/SettingActivity.java +++ b/app/src/main/java/com/idormy/sms/forwarder/SettingActivity.java @@ -356,24 +356,30 @@ public class SettingActivity extends AppCompatActivity { textSmsTemplate.requestFocus(); switch (v.getId()) { case R.id.bt_insert_sender: - textSmsTemplate.append("{{来源号码}}"); + insertOrReplaceText2Cursor(textSmsTemplate, "{{来源号码}}"); return; case R.id.bt_insert_content: - textSmsTemplate.append("{{短信内容}}"); + insertOrReplaceText2Cursor(textSmsTemplate, "{{短信内容}}"); return; case R.id.bt_insert_extra: - textSmsTemplate.append("{{卡槽信息}}"); + insertOrReplaceText2Cursor(textSmsTemplate, "{{卡槽信息}}"); return; case R.id.bt_insert_time: - textSmsTemplate.append("{{接收时间}}"); + insertOrReplaceText2Cursor(textSmsTemplate, "{{接收时间}}"); return; case R.id.bt_insert_device_name: - textSmsTemplate.append("{{设备名称}}"); + insertOrReplaceText2Cursor(textSmsTemplate, "{{设备名称}}"); return; default: } } + private void insertOrReplaceText2Cursor(EditText editText, String str) { + int start = Math.max(editText.getSelectionStart(), 0); + int end = Math.max(editText.getSelectionEnd(), 0); + editText.getText().replace(Math.min(start, end), Math.max(start, end), str, 0, str.length()); + } + //恢复初始化配置 public void initSetting(View view) {