From 13c9630047d7d08f110901ff9c29025680862bd7 Mon Sep 17 00:00:00 2001 From: malsony Date: Mon, 20 Dec 2021 11:43:07 +0800 Subject: [PATCH 1/4] Update of translation. Todo: multiple rules. --- app/src/main/res/values-en/strings.xml | 70 +++++++++++++------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml index f60dcc2c..0b94dde7 100644 --- a/app/src/main/res/values-en/strings.xml +++ b/app/src/main/res/values-en/strings.xml @@ -1,6 +1,6 @@ SmsForwarder - Forward to DingTalk/WeCom/FeiShu/Email/Bark/ServerChan/Telegram/Webhook, etc + Forward SMS (and others!) to another app/device, a must-have for anyone's secondary smartphone. Free and open source, do NOT buy or sell this App. OK Cancel @@ -17,22 +17,22 @@ Sender Setting App List Tips: Pull to refresh; Long press to delete one log entry. - Tips: Tap "NEW FORWARDING RULE" to add a new rule; Long press one to delete; Tap an existing one to edit. - Tips: Tap "NEW SENDER" to add a new sender; Long press one to delete; Tap an existing one to edit. - Tips: Tap to copy the package name of APP; Long press one to start and jump to. + Tips: Tap "NEW FORWARDING RULE" to add a new rule; Long press a rule to delete; Tap an existing rule to edit. + Tips: Tap "NEW SENDER" to add a new sender; Long press a sender to delete; Tap an existing sender to edit. + Tips: Tap to copy the package name of an App; Long press an App to start and jump to it. Version Check for updates Auto startup Show tips - Open source - Synchronize Mirror + Repo URL + Repo Mirror QQ Group 1st:562854376 2nd:31330492 Join 1st Group Join 2nd Group - Cache + Cache size Purge Checking… Yo, you are up to date! @@ -42,7 +42,7 @@ Clear Logs Delete confirmation Are you sure to delete this log entry? - The log entry has deleted. + This log entry is deleted. Details Are you sure to clear all forwarding logs? Pull to refresh. @@ -85,8 +85,8 @@ Invalid sender, abort! Delete confirmation - Are you sure to delete this rule entry? - The rule entry has deleted. + Are you sure to delete this sender? + The sender is deleted. Select sender type Not supported DingTalk Bot Settings @@ -105,15 +105,15 @@ 【JD】code 387481, ihelp.jd.com Test Group Name Failed to fwd: - Token cannot be empty + Token cannot be blank Invalid email settings - Bark-server cannot be empty - Neither ApiToken nor ChatId can be empty - SendKey cannot be empty - WebServer cannot be empty - webHook cannot be empty - The specified member cannot be empty or select @all - Phone number cannot be empty + Bark-server cannot be blank + Neither ApiToken nor ChatId can be blank + SendKey cannot be blank + WebServer cannot be blank + Webhook cannot be blank + The specified member cannot be blank or select @all + Phone number cannot be blank New Sender Bark Group Name Bark-Server, e.g. https://bark.bms.ink/XXXXXXXX/ @@ -149,7 +149,7 @@ Method WebServer e.g. https://a.b.com/msg?token=xyz WebParams e.g. payload=%7B%22text%22%3A%22[msg]%22%7D [msg] will be replaced with text message content. \nSupport Json format, for example: {"text":[MSG]}.\n Note: MSG is automatically utF-8 encoded in addition to JSON format - Secret (If empty, sign is not counted) + Secret (sign is not counted if left blank) Sim Slot Same source Receive mobile phone numbers separated by, e.g. 15888888888;19999999999 @@ -174,8 +174,8 @@ Enable regular replacement content Format: RegularExpression===ReplacementResult,One rule per line.\ne.g. (\\d{3})\\d+(\\d{4})===$1****$2 Format check: line %d is badly formatted! Format: RegularExpression===ReplacementResult - Exclude from recents - After this function is enabled, manual killing of processes is effectively avoided, which helps to keep the process alive + Hide from recent Apps + Enable to hide SmsForwarder from recent Apps so as to keep alive Custom templates Tip:Insert labels as needed;Leave blank to default template Phone @@ -200,40 +200,40 @@ 0KB SIM1 SIM2 - 多重匹配规则示例:\n \n 并且 是 手机号 相等 10086\n 或者 是 手机号 相等 10011\n 并且 是 短信内容 包含 欠费\n \n 以上规则表示:收到短信,并且(手机号是10086 或者 手机号是10010),并且 短信内容 包含 欠费 时转发短信\n 注意:每行开始的空格代表层级,太过复杂的多重规则可能导致内存占用很大! - 多重匹配规则示例:\n \n 并且 是 包名 相等 com.tencent.mm\n 或者 是 包名 相等 com.tencent.mm\n 并且 是 通知内容 包含 欠费\n \n 以上规则表示:收到APP通知,并且(包名是com.tencent.mm 或者 包名是com.tencent.mm),并且 通知内容 包含 欠费 时转发通知\n 注意:每行开始的空格代表层级,太过复杂的多重规则可能导致内存占用很大! + 多重匹配规则示例:\n \n 并且 是 手机号 相等 10086\n 或者 是 手机号 相等 10011\n 并且 是 短信内容 包含 欠费\n \n 以上规则表示:收到短信,并且(手机号是10086 或者 手机号是10010),并且 短信内容 包含 欠费 时转发短信\n Note: Space(s) at beginning of each line indicates rule hierarchy, complicity of multiple rules may causes large memory usage! + 多重匹配规则示例:\n \n 并且 是 包名 相等 com.tencent.mm\n 或者 是 包名 相等 com.tencent.mm\n 并且 是 通知内容 包含 欠费\n \n 以上规则表示:收到APP通知,并且(包名是com.tencent.mm 或者 包名是com.tencent.mm),并且 通知内容 包含 欠费 时转发通知\n Note: Space(s) at beginning of each line indicates rule hierarchy, complicity of multiple rules may causes large memory usage! POST GET Local IP: - Operation instructions: \n1. Please keep the old and new phones in the same WiFi network, and do not turn on isolation \n2.The old mobile phone directly click "send" button, get "server IP" \n3. After filling in "Server IP" for the new mobile phone, click "Receive" button \n [note], the sender and forwarding rules will be completely covered after the new mobile phone receives! + Instructions: \n1. Please keep the SOURCE and DESTINATION phones in the same Wi-Fi network, and do not turn on isolation. \n2. Tap "Send" on SOURCE mobile phone, and get "server IP" \n3. After filling in "Server IP" on DESTINATION phone, tap "Receive". \n [NOTE:] sender(s), forwarding rule(s) and log(s) will be overwritten after cloning! Send Stop - I\'m the old phone + I\'m the SCOURCE phone Receive - I\'m the new phone + I\'m the DESTINATION phone Server IP: . Please enter a valid IP address The server is started successfully The server has been stopped - This mobile phone is the sender and cannot receive files. - If the Wifi network is not connected, the one-click cloning function cannot be used. + This mobile phone is the SOURCE and cannot receive files. + One-tap cloning function does NOT work without Wi-Fi connection. Please enter a valid server IP address Download Success - Currently on a wireless network - Currently on a mobile network - No network at present - Not connected WIFI - Failed to get IP address + A Wireless network connected. + A Mobile network connected. + Not connected to a network. + No Wi-Fi network connected. + Failed to get an IP address SMS Call App App Icon User App System App - Please set the power saving optimization to unlimited (no optimization), which is conducive to the survival of SMS forwarder! - Please grant the right to use SMS forwarder notification first, otherwise the APP notification cannot be forwarded and the forwarding will be automatically closed! + Please deactivate power optimization for SmsForwarder, in order to keep the App alive! + Please grant Notification reading permission to SmsForwarder, before other Apps' notification could be forwarded. Forwarding automatically canceled! The notification service is enabled The notification service is disabled Token From 282a5b7b43a8948639d0b4c774ed8f4e7af34f81 Mon Sep 17 00:00:00 2001 From: pppscn <35696959@qq.com> Date: Tue, 21 Dec 2021 16:12:55 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E6=95=B4=E7=90=86=EF=BC=9A=E8=8B=B1?= =?UTF-8?q?=E6=96=87=E8=AF=AD=E8=A8=80=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/res/values-en/strings.xml | 6 +++--- app/src/main/res/values/strings.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml index 0b94dde7..0615a37a 100644 --- a/app/src/main/res/values-en/strings.xml +++ b/app/src/main/res/values-en/strings.xml @@ -1,6 +1,6 @@ SmsForwarder - Forward SMS (and others!) to another app/device, a must-have for anyone's secondary smartphone. Free and open source, do NOT buy or sell this App. + Forward SMS (and others!) to another app/device, a must-have for anyone\'s secondary smartphone. Free and open source, do NOT buy or sell this App. OK Cancel @@ -146,7 +146,7 @@ ServerChan\'s SendKey ApiToken or Custom address ChatId - Method + Method WebServer e.g. https://a.b.com/msg?token=xyz WebParams e.g. payload=%7B%22text%22%3A%22[msg]%22%7D [msg] will be replaced with text message content. \nSupport Json format, for example: {"text":[MSG]}.\n Note: MSG is automatically utF-8 encoded in addition to JSON format Secret (sign is not counted if left blank) @@ -233,7 +233,7 @@ User App System App Please deactivate power optimization for SmsForwarder, in order to keep the App alive! - Please grant Notification reading permission to SmsForwarder, before other Apps' notification could be forwarded. Forwarding automatically canceled! + Please grant Notification reading permission to SmsForwarder, before other App\'s notification could be forwarded. Forwarding automatically canceled! The notification service is enabled The notification service is disabled Token diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e0eb5532..d1acc975 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -146,7 +146,7 @@ 设置Server酱·Turbo版的SendKey 设置Telegram机器人的ApiToken 或 自定义地址(http开头) 设置被通知人(或群组)的ChatId - 请求方式 + 请求方式 设置WebServer:例如:https://a.b.com/msg?token=xyz 设置WebParams:例如:payload=%7B%22text%22%3A%22[msg]%22%7D [msg]将被替换成短信内容。\n支持Json格式,例如:{"text":[msg]}。\n注意:除JSON格式外,msg会自动进行UTF-8编码 设置Secret:置空则不计算sign From 412ad3dc3ea08dd1c1d2705abf1167d90a887024 Mon Sep 17 00:00:00 2001 From: pppscn <35696959@qq.com> Date: Tue, 21 Dec 2021 17:56:54 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E4=B8=80=E9=94=AE=E5=85=8B=E9=9A=86=E5=8D=95=E6=9D=A1?= =?UTF-8?q?=E8=BD=AC=E5=8F=91=E8=A7=84=E5=88=99=EF=BC=88=E9=95=BF=E6=8C=89?= =?UTF-8?q?=E5=BC=B9=E5=87=BA=E5=AF=B9=E8=AF=9D=E6=A1=86=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../idormy/sms/forwarder/RuleActivity.java | 20 +++++++++++++++---- app/src/main/res/values-en/strings.xml | 4 ++-- app/src/main/res/values/strings.xml | 4 ++-- 3 files changed, 20 insertions(+), 8 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 55e37667..fe550a69 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/RuleActivity.java +++ b/app/src/main/java/com/idormy/sms/forwarder/RuleActivity.java @@ -87,8 +87,9 @@ public class RuleActivity extends AppCompatActivity { listView.setOnItemClickListener((parent, view, position, id) -> { RuleModel ruleModel = ruleModels.get(position); Log.d(TAG, "onItemClick: " + ruleModel); - setRule(ruleModel); + setRule(ruleModel, false); }); + listView.setOnItemLongClickListener((parent, view, position, id) -> { //定义AlertDialog.Builder对象,当长按列表项的时候弹出确认删除对话框 AlertDialog.Builder builder = new AlertDialog.Builder(RuleActivity.this); @@ -103,6 +104,17 @@ public class RuleActivity extends AppCompatActivity { Toast.makeText(getBaseContext(), R.string.delete_rule_toast, Toast.LENGTH_SHORT).show(); }); + //添加AlertDialog.Builder对象的setNegativeButton()方法 + builder.setNeutralButton(R.string.clone, (dialog, which) -> { + RuleModel ruleModel = ruleModels.get(position); + //TODO:直接复制 + //RuleUtil.addRule(ruleModel); + //initRules(); + //adapter.add(ruleModels); + //TODO:只复制到编辑对话框 + setRule(ruleModel, true); + }); + //添加AlertDialog.Builder对象的setNegativeButton()方法 builder.setNegativeButton(R.string.cancel, (dialog, which) -> { @@ -169,10 +181,10 @@ public class RuleActivity extends AppCompatActivity { final RadioGroup radioGroupTypeCheck = findViewById(R.id.radioGroupTypeCheck); radioGroupTypeCheck.check(typeCheckId); - setRule(null); + setRule(null, false); } - private void setRule(final RuleModel ruleModel) { + private void setRule(final RuleModel ruleModel, final boolean isClone) { final AlertDialog.Builder alertDialog71 = new AlertDialog.Builder(RuleActivity.this); final View view1 = View.inflate(RuleActivity.this, getDialogView(currentType), null); @@ -260,7 +272,7 @@ public class RuleActivity extends AppCompatActivity { int radioGroupRuleCheckId = Math.max(radioGroupRuleCheck.getCheckedRadioButtonId(), radioGroupRuleCheck2.getCheckedRadioButtonId()); Log.d(TAG, radioGroupRuleCheck.getCheckedRadioButtonId() + " " + radioGroupRuleCheck2.getCheckedRadioButtonId() + " " + radioGroupRuleCheckId); - if (ruleModel == null) { + if (isClone || ruleModel == null) { RuleModel newRuleModel = new RuleModel(); newRuleModel.setType(currentType); newRuleModel.setFiled(RuleModel.getRuleFiledFromCheckId(radioGroupRuleFiled.getCheckedRadioButtonId())); diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml index 0615a37a..7852191b 100644 --- a/app/src/main/res/values-en/strings.xml +++ b/app/src/main/res/values-en/strings.xml @@ -17,7 +17,7 @@ Sender Setting App List Tips: Pull to refresh; Long press to delete one log entry. - Tips: Tap "NEW FORWARDING RULE" to add a new rule; Long press a rule to delete; Tap an existing rule to edit. + Tips: Tap "NEW FORWARDING RULE" to add a new rule; Long press a rule to delete or clone; Tap an existing rule to edit. Tips: Tap "NEW SENDER" to add a new sender; Long press a sender to delete; Tap an existing sender to edit. Tips: Tap to copy the package name of an App; Long press an App to start and jump to it. @@ -52,7 +52,7 @@ Fwd Rule Settings Fwd Rule Settings of call Fwd Rule Settings of app - Delete confirmation + Confirmation Are you sure to delete this rule entry? The rule entry has deleted. Please add a new sender and then choose it. diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d1acc975..f1e45d92 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -17,7 +17,7 @@ 发送通道 应用列表 提示:置顶下拉刷新,长按删除单条,选项卡切换日志类型 - 提示:新建规则点击“添加”,长按删除/点击编辑已有 + 提示:新建规则点击“添加”,长按删除/克隆,点击编辑已有 提示:新建发送通道点击“添加”,长按删除/点击编辑已有 提示:点击复制APP的包名,长按则启动并跳转该APP @@ -52,7 +52,7 @@ 设置短信转发规则 设置来电转发规则 设置APP通知转发规则 - 规则删除确认 + 规则操作确认 确定删除该条规则? 该条规则已经删除! 请选择发送通道(若无,请先添加) From 7fd339c8011504859e70e31c792cb67b94c50de9 Mon Sep 17 00:00:00 2001 From: pppscn <35696959@qq.com> Date: Tue, 21 Dec 2021 21:52:07 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E4=B8=80=E9=94=AE=E5=85=8B=E9=9A=86=E5=8D=95=E6=9D=A1?= =?UTF-8?q?=E5=8F=91=E9=80=81=E9=80=9A=E9=81=93=EF=BC=88=E9=95=BF=E6=8C=89?= =?UTF-8?q?=E5=BC=B9=E5=87=BA=E5=AF=B9=E8=AF=9D=E6=A1=86=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../idormy/sms/forwarder/SenderActivity.java | 133 ++++++++++++------ app/src/main/res/values-en/strings.xml | 4 +- app/src/main/res/values/strings.xml | 6 +- 3 files changed, 94 insertions(+), 49 deletions(-) diff --git a/app/src/main/java/com/idormy/sms/forwarder/SenderActivity.java b/app/src/main/java/com/idormy/sms/forwarder/SenderActivity.java index 74bf093b..b931db1d 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/SenderActivity.java +++ b/app/src/main/java/com/idormy/sms/forwarder/SenderActivity.java @@ -117,37 +117,37 @@ public class SenderActivity extends AppCompatActivity { switch (senderModel.getType()) { case TYPE_DINGDING: - setDingDing(senderModel); + setDingDing(senderModel, false); break; case TYPE_EMAIL: - setEmail(senderModel); + setEmail(senderModel, false); break; case TYPE_BARK: - setBark(senderModel); + setBark(senderModel, false); break; case TYPE_WEB_NOTIFY: - setWebNotify(senderModel); + setWebNotify(senderModel, false); break; case TYPE_QYWX_GROUP_ROBOT: - setQYWXGroupRobot(senderModel); + setQYWXGroupRobot(senderModel, false); break; case TYPE_QYWX_APP: - setQYWXApp(senderModel); + setQYWXApp(senderModel, false); break; case TYPE_SERVER_CHAN: - setServerChan(senderModel); + setServerChan(senderModel, false); break; case TYPE_TELEGRAM: - setTelegram(senderModel); + setTelegram(senderModel, false); break; case TYPE_SMS: - setSms(senderModel); + setSms(senderModel, false); break; case TYPE_FEISHU: - setFeiShu(senderModel); + setFeiShu(senderModel, false); break; case TYPE_PUSHPLUS: - setPushPlus(senderModel); + setPushPlus(senderModel, false); break; default: Toast.makeText(SenderActivity.this, R.string.invalid_sender, Toast.LENGTH_LONG).show(); @@ -173,6 +173,51 @@ public class SenderActivity extends AppCompatActivity { Toast.makeText(getBaseContext(), R.string.delete_sender_toast, Toast.LENGTH_SHORT).show(); }); + builder.setNeutralButton(R.string.clone, (dialog, which) -> { + SenderModel senderModel = senderModels.get(position); + switch (senderModel.getType()) { + case TYPE_DINGDING: + setDingDing(senderModel, true); + break; + case TYPE_EMAIL: + setEmail(senderModel, true); + break; + case TYPE_BARK: + setBark(senderModel, true); + break; + case TYPE_WEB_NOTIFY: + setWebNotify(senderModel, true); + break; + case TYPE_QYWX_GROUP_ROBOT: + setQYWXGroupRobot(senderModel, true); + break; + case TYPE_QYWX_APP: + setQYWXApp(senderModel, true); + break; + case TYPE_SERVER_CHAN: + setServerChan(senderModel, true); + break; + case TYPE_TELEGRAM: + setTelegram(senderModel, true); + break; + case TYPE_SMS: + setSms(senderModel, true); + break; + case TYPE_FEISHU: + setFeiShu(senderModel, true); + break; + case TYPE_PUSHPLUS: + setPushPlus(senderModel, true); + break; + default: + Toast.makeText(SenderActivity.this, R.string.invalid_sender, Toast.LENGTH_LONG).show(); + SenderUtil.delSender(senderModel.getId()); + initSenders(); + adapter.del(senderModels); + break; + } + }); + //添加AlertDialog.Builder对象的setNegativeButton()方法 builder.setNegativeButton(R.string.cancel, (dialog, which) -> { @@ -195,37 +240,37 @@ public class SenderActivity extends AppCompatActivity { builder.setItems(R.array.add_sender_menu, (dialogInterface, which) -> { switch (which) { case TYPE_DINGDING: - setDingDing(null); + setDingDing(null, false); break; case TYPE_EMAIL: - setEmail(null); + setEmail(null, false); break; case TYPE_BARK: - setBark(null); + setBark(null, false); break; case TYPE_WEB_NOTIFY: - setWebNotify(null); + setWebNotify(null, false); break; case TYPE_QYWX_GROUP_ROBOT: - setQYWXGroupRobot(null); + setQYWXGroupRobot(null, false); break; case TYPE_QYWX_APP: - setQYWXApp(null); + setQYWXApp(null, false); break; case TYPE_SERVER_CHAN: - setServerChan(null); + setServerChan(null, false); break; case TYPE_TELEGRAM: - setTelegram(null); + setTelegram(null, false); break; case TYPE_SMS: - setSms(null); + setSms(null, false); break; case TYPE_FEISHU: - setFeiShu(null); + setFeiShu(null, false); break; case TYPE_PUSHPLUS: - setPushPlus(null); + setPushPlus(null, false); break; default: Toast.makeText(SenderActivity.this, R.string.not_supported, Toast.LENGTH_LONG).show(); @@ -238,7 +283,7 @@ public class SenderActivity extends AppCompatActivity { //钉钉机器人 @SuppressLint("SimpleDateFormat") - private void setDingDing(final SenderModel senderModel) { + private void setDingDing(final SenderModel senderModel, final boolean isClone) { DingDingSettingVo dingDingSettingVo = null; //try phrase json setting if (senderModel != null) { @@ -277,7 +322,7 @@ public class SenderActivity extends AppCompatActivity { final AlertDialog show = alertDialog71.show(); buttonDingdingOk.setOnClickListener(view -> { - if (senderModel == null) { + if (isClone || senderModel == null) { SenderModel newSenderModel = new SenderModel(); newSenderModel.setName(editTextDingdingName.getText().toString().trim()); newSenderModel.setType(TYPE_DINGDING); @@ -339,7 +384,7 @@ public class SenderActivity extends AppCompatActivity { //邮箱 @SuppressLint("SimpleDateFormat") - private void setEmail(final SenderModel senderModel) { + private void setEmail(final SenderModel senderModel, final boolean isClone) { EmailSettingVo emailSettingVo = null; //try phrase json setting if (senderModel != null) { @@ -407,7 +452,7 @@ public class SenderActivity extends AppCompatActivity { EmailSettingVo emailSettingVoNew = new EmailSettingVo(protocol, host, port, ssl, fromEmail, nickname, pwd, toEmail, title); - if (senderModel == null) { + if (isClone || senderModel == null) { SenderModel newSenderModel = new SenderModel(); newSenderModel.setName(editTextEmailName.getText().toString().trim()); newSenderModel.setType(TYPE_EMAIL); @@ -495,7 +540,7 @@ public class SenderActivity extends AppCompatActivity { } //Bark - private void setBark(final SenderModel senderModel) { + private void setBark(final SenderModel senderModel, final boolean isClone) { BarkSettingVo barkSettingVo = null; //try phrase json setting if (senderModel != null) { @@ -527,7 +572,7 @@ public class SenderActivity extends AppCompatActivity { buttonBarkOk.setOnClickListener(view -> { - if (senderModel == null) { + if (isClone || senderModel == null) { SenderModel newSenderModel = new SenderModel(); newSenderModel.setName(editTextBarkName.getText().toString().trim()); newSenderModel.setType(TYPE_BARK); @@ -582,7 +627,7 @@ public class SenderActivity extends AppCompatActivity { } //Server酱·Turbo版 - private void setServerChan(final SenderModel senderModel) { + private void setServerChan(final SenderModel senderModel, final boolean isClone) { ServerChanSettingVo serverchanSettingVo = null; //try phrase json setting if (senderModel != null) { @@ -613,7 +658,7 @@ public class SenderActivity extends AppCompatActivity { buttonServerChanOk.setOnClickListener(view -> { - if (senderModel == null) { + if (isClone || senderModel == null) { SenderModel newSenderModel = new SenderModel(); newSenderModel.setName(editTextServerChanName.getText().toString().trim()); newSenderModel.setType(TYPE_SERVER_CHAN); @@ -666,7 +711,7 @@ public class SenderActivity extends AppCompatActivity { //webhook @SuppressLint("SimpleDateFormat") - private void setWebNotify(final SenderModel senderModel) { + private void setWebNotify(final SenderModel senderModel, final boolean isClone) { WebNotifySettingVo webNotifySettingVo = null; //try phrase json setting if (senderModel != null) { @@ -707,7 +752,7 @@ public class SenderActivity extends AppCompatActivity { (radioGroupWebNotifyMethod.getCheckedRadioButtonId() == R.id.radioWebNotifyMethodGet ? "GET" : "POST"), editTextWebNotifyWebParams.getText().toString().trim() ); - if (senderModel == null) { + if (isClone || senderModel == null) { SenderModel newSenderModel = new SenderModel(); newSenderModel.setName(editTextWebNotifyName.getText().toString().trim()); newSenderModel.setType(TYPE_WEB_NOTIFY); @@ -753,7 +798,7 @@ public class SenderActivity extends AppCompatActivity { //企业微信群机器人 @SuppressLint("SimpleDateFormat") - private void setQYWXGroupRobot(final SenderModel senderModel) { + private void setQYWXGroupRobot(final SenderModel senderModel, final boolean isClone) { QYWXGroupRobotSettingVo qywxGroupRobotSettingVo = null; //try phrase json setting if (senderModel != null) { @@ -784,7 +829,7 @@ public class SenderActivity extends AppCompatActivity { buttonQyWxGroupRobotOk.setOnClickListener(view -> { - if (senderModel == null) { + if (isClone || senderModel == null) { SenderModel newSenderModel = new SenderModel(); newSenderModel.setName(editTextQYWXGroupRobotName.getText().toString().trim()); newSenderModel.setType(TYPE_QYWX_GROUP_ROBOT); @@ -837,7 +882,7 @@ public class SenderActivity extends AppCompatActivity { //企业微信应用 @SuppressLint({"SimpleDateFormat", "SetTextI18n"}) - private void setQYWXApp(final SenderModel senderModel) { + private void setQYWXApp(final SenderModel senderModel, final boolean isClone) { QYWXAppSettingVo QYWXAppSettingVo = null; //try phrase json setting if (senderModel != null) { @@ -895,7 +940,7 @@ public class SenderActivity extends AppCompatActivity { return; } - if (senderModel == null) { + if (isClone || senderModel == null) { SenderModel newSenderModel = new SenderModel(); newSenderModel.setName(editTextQYWXAppName.getText().toString().trim()); newSenderModel.setType(TYPE_QYWX_APP); @@ -959,7 +1004,7 @@ public class SenderActivity extends AppCompatActivity { } //Telegram机器人 - private void setTelegram(final SenderModel senderModel) { + private void setTelegram(final SenderModel senderModel, final boolean isClone) { TelegramSettingVo telegramSettingVo = null; //try phrase json setting if (senderModel != null) { @@ -1044,7 +1089,7 @@ public class SenderActivity extends AppCompatActivity { buttonTelegramOk.setOnClickListener(view -> { - if (senderModel == null) { + if (isClone || senderModel == null) { SenderModel newSenderModel = new SenderModel(); newSenderModel.setName(editTextTelegramName.getText().toString().trim()); newSenderModel.setType(TYPE_TELEGRAM); @@ -1122,7 +1167,7 @@ public class SenderActivity extends AppCompatActivity { } //短信 - private void setSms(final SenderModel senderModel) { + private void setSms(final SenderModel senderModel, final boolean isClone) { SmsSettingVo smsSettingVo = null; //try phrase json setting if (senderModel != null) { @@ -1157,7 +1202,7 @@ public class SenderActivity extends AppCompatActivity { buttonSmsOk.setOnClickListener(view -> { - if (senderModel == null) { + if (isClone || senderModel == null) { SenderModel newSenderModel = new SenderModel(); newSenderModel.setName(editTextSmsName.getText().toString().trim()); newSenderModel.setType(TYPE_SMS); @@ -1219,7 +1264,7 @@ public class SenderActivity extends AppCompatActivity { //飞书机器人 @SuppressLint("SimpleDateFormat") - private void setFeiShu(final SenderModel senderModel) { + private void setFeiShu(final SenderModel senderModel, final boolean isClone) { FeiShuSettingVo feiShuSettingVo = null; //try phrase json setting if (senderModel != null) { @@ -1252,7 +1297,7 @@ public class SenderActivity extends AppCompatActivity { final AlertDialog show = alertDialog71.show(); buttonFeishuOk.setOnClickListener(view -> { - if (senderModel == null) { + if (isClone || senderModel == null) { SenderModel newSenderModel = new SenderModel(); newSenderModel.setName(editTextFeishuName.getText().toString().trim()); newSenderModel.setType(TYPE_FEISHU); @@ -1306,7 +1351,7 @@ public class SenderActivity extends AppCompatActivity { //推送加 @SuppressLint("SimpleDateFormat") - private void setPushPlus(final SenderModel senderModel) { + private void setPushPlus(final SenderModel senderModel, final boolean isClone) { PushPlusSettingVo pushPlusSettingVo = null; //try phrase json setting if (senderModel != null) { @@ -1349,7 +1394,7 @@ public class SenderActivity extends AppCompatActivity { final AlertDialog show = alertDialog71.show(); buttonPushPlusOk.setOnClickListener(view -> { - if (senderModel == null) { + if (isClone || senderModel == null) { SenderModel newSenderModel = new SenderModel(); newSenderModel.setName(editTextPushPlusName.getText().toString().trim()); newSenderModel.setType(TYPE_PUSHPLUS); diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml index 7852191b..825188c8 100644 --- a/app/src/main/res/values-en/strings.xml +++ b/app/src/main/res/values-en/strings.xml @@ -18,7 +18,7 @@ App List Tips: Pull to refresh; Long press to delete one log entry. Tips: Tap "NEW FORWARDING RULE" to add a new rule; Long press a rule to delete or clone; Tap an existing rule to edit. - Tips: Tap "NEW SENDER" to add a new sender; Long press a sender to delete; Tap an existing sender to edit. + Tips: Tap "NEW SENDER" to add a new sender; Long press a sender to delete or clone; Tap an existing sender to edit. Tips: Tap to copy the package name of an App; Long press an App to start and jump to it. Version @@ -84,7 +84,7 @@ Value Invalid sender, abort! - Delete confirmation + Confirmation Are you sure to delete this sender? The sender is deleted. Select sender type diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f1e45d92..d65a4525 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -18,7 +18,7 @@ 应用列表 提示:置顶下拉刷新,长按删除单条,选项卡切换日志类型 提示:新建规则点击“添加”,长按删除/克隆,点击编辑已有 - 提示:新建发送通道点击“添加”,长按删除/点击编辑已有 + 提示:新建发送通道点击“添加”,长按删除/克隆,点击编辑已有 提示:点击复制APP的包名,长按则启动并跳转该APP 当前版本 @@ -52,7 +52,7 @@ 设置短信转发规则 设置来电转发规则 设置APP通知转发规则 - 规则操作确认 + 转发规则操作确认 确定删除该条规则? 该条规则已经删除! 请选择发送通道(若无,请先添加) @@ -84,7 +84,7 @@ 设置匹配的值 异常的发送通道类型,自动删除! - 发送通道删除确认 + 发送通道操作确认 确定删除该条发送通道? 该条发送通道已经删除! 选择发送通道类型