新增:支持一键克隆单条发送通道(长按弹出对话框)

pull/93/head^2
pppscn 3 years ago
parent 412ad3dc3e
commit 7fd339c801

@ -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);

@ -18,7 +18,7 @@
<string name="app_list">App List</string>
<string name="log_tips">Tips: Pull to refresh; Long press to delete one log entry.</string>
<string name="rule_tips">Tips: Tap "NEW FORWARDING RULE" to add a new rule; Long press a rule to delete or clone; Tap an existing rule to edit.</string>
<string name="sender_tips">Tips: Tap "NEW SENDER" to add a new sender; Long press a sender to delete; Tap an existing sender to edit.</string>
<string name="sender_tips">Tips: Tap "NEW SENDER" to add a new sender; Long press a sender to delete or clone; Tap an existing sender to edit.</string>
<string name="app_tips">Tips: Tap to copy the package name of an App; Long press an App to start and jump to it.</string>
<!--AboutActivity-->
<string name="version">Version</string>
@ -84,7 +84,7 @@
<string name="match_value">Value</string>
<!--SenderActivity-->
<string name="invalid_sender">Invalid sender, abort!</string>
<string name="delete_sender_title">Delete confirmation</string>
<string name="delete_sender_title">Confirmation</string>
<string name="delete_sender_tips">Are you sure to delete this sender?</string>
<string name="delete_sender_toast">The sender is deleted.</string>
<string name="add_sender_title">Select sender type</string>

@ -18,7 +18,7 @@
<string name="app_list">应用列表</string>
<string name="log_tips">提示:置顶下拉刷新,长按删除单条,选项卡切换日志类型</string>
<string name="rule_tips">提示:新建规则点击“添加”,长按删除/克隆,点击编辑已有</string>
<string name="sender_tips">提示:新建发送通道点击“添加”,长按删除/点击编辑已有</string>
<string name="sender_tips">提示:新建发送通道点击“添加”,长按删除/克隆,点击编辑已有</string>
<string name="app_tips">提示点击复制APP的包名长按则启动并跳转该APP</string>
<!--AboutActivity-->
<string name="version">当前版本</string>
@ -52,7 +52,7 @@
<string name="setrule">设置短信转发规则</string>
<string name="setrule_call">设置来电转发规则</string>
<string name="setrule_app">设置APP通知转发规则</string>
<string name="delete_rule_title">规则操作确认</string>
<string name="delete_rule_title">转发规则操作确认</string>
<string name="delete_rule_tips">确定删除该条规则?</string>
<string name="delete_rule_toast">该条规则已经删除!</string>
<string name="new_sender_first">请选择发送通道(若无,请先添加)</string>
@ -84,7 +84,7 @@
<string name="match_value">设置匹配的值</string>
<!--SenderActivity-->
<string name="invalid_sender">异常的发送通道类型,自动删除!</string>
<string name="delete_sender_title">发送通道删除确认</string>
<string name="delete_sender_title">发送通道操作确认</string>
<string name="delete_sender_tips">确定删除该条发送通道?</string>
<string name="delete_sender_toast">该条发送通道已经删除!</string>
<string name="add_sender_title">选择发送通道类型</string>

Loading…
Cancel
Save