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] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E4=B8=80=E9=94=AE=E5=85=8B=E9=9A=86=E5=8D=95=E6=9D=A1=E5=8F=91?= =?UTF-8?q?=E9=80=81=E9=80=9A=E9=81=93=EF=BC=88=E9=95=BF=E6=8C=89=E5=BC=B9?= =?UTF-8?q?=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 @@ 设置匹配的值 异常的发送通道类型,自动删除! - 发送通道删除确认 + 发送通道操作确认 确定删除该条发送通道? 该条发送通道已经删除! 选择发送通道类型