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 0d06f692..000d4965 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/SenderActivity.java +++ b/app/src/main/java/com/idormy/sms/forwarder/SenderActivity.java @@ -353,21 +353,25 @@ public class SenderActivity extends AppCompatActivity { final EditText editTextEmailName = view1.findViewById(R.id.editTextEmailName); if (senderModel != null) editTextEmailName.setText(senderModel.getName()); + final EditText editTextEmailHost = view1.findViewById(R.id.editTextEmailHost); - if (emailSettingVo != null) editTextEmailHost.setText(emailSettingVo.getHost()); final EditText editTextEmailPort = view1.findViewById(R.id.editTextEmailPort); - if (emailSettingVo != null) editTextEmailPort.setText(emailSettingVo.getPort()); - @SuppressLint("UseSwitchCompatOrMaterialCode") final Switch switchEmailSSl = view1.findViewById(R.id.switchEmailSSl); - if (emailSettingVo != null) switchEmailSSl.setChecked(emailSettingVo.getSsl()); final EditText editTextEmailFromAdd = view1.findViewById(R.id.editTextEmailFromAdd); - if (emailSettingVo != null) editTextEmailFromAdd.setText(emailSettingVo.getFromEmail()); final EditText editTextEmailNickname = view1.findViewById(R.id.editTextEmailNickname); - if (emailSettingVo != null) editTextEmailNickname.setText(emailSettingVo.getNickname()); final EditText editTextEmailPsw = view1.findViewById(R.id.editTextEmailPsw); - if (emailSettingVo != null) editTextEmailPsw.setText(emailSettingVo.getPwd()); final EditText editTextEmailToAdd = view1.findViewById(R.id.editTextEmailToAdd); - if (emailSettingVo != null) editTextEmailToAdd.setText(emailSettingVo.getToEmail()); + final EditText editTextEmailTitle = view1.findViewById(R.id.editTextEmailTitle); + if (emailSettingVo != null) { + editTextEmailHost.setText(emailSettingVo.getHost()); + editTextEmailPort.setText(emailSettingVo.getPort()); + switchEmailSSl.setChecked(emailSettingVo.getSsl()); + editTextEmailFromAdd.setText(emailSettingVo.getFromEmail()); + editTextEmailNickname.setText(emailSettingVo.getNickname()); + editTextEmailPsw.setText(emailSettingVo.getPwd()); + editTextEmailToAdd.setText(emailSettingVo.getToEmail()); + editTextEmailTitle.setText(emailSettingVo.getTitle()); + } Button buttonEmailOk = view1.findViewById(R.id.buttonEmailOk); Button buttonEmailDel = view1.findViewById(R.id.buttonEmailDel); @@ -380,7 +384,6 @@ public class SenderActivity extends AppCompatActivity { final AlertDialog show = alertDialog71.show(); buttonEmailOk.setOnClickListener(view -> { - if (senderModel == null) { SenderModel newSenderModel = new SenderModel(); newSenderModel.setName(editTextEmailName.getText().toString()); @@ -393,7 +396,8 @@ public class SenderActivity extends AppCompatActivity { editTextEmailFromAdd.getText().toString(), editTextEmailNickname.getText().toString(), editTextEmailPsw.getText().toString(), - editTextEmailToAdd.getText().toString() + editTextEmailToAdd.getText().toString(), + editTextEmailTitle.getText().toString() ); newSenderModel.setJsonSetting(JSON.toJSONString(emailSettingVoNew)); SenderUtil.addSender(newSenderModel); @@ -410,7 +414,8 @@ public class SenderActivity extends AppCompatActivity { editTextEmailFromAdd.getText().toString(), editTextEmailNickname.getText().toString(), editTextEmailPsw.getText().toString(), - editTextEmailToAdd.getText().toString() + editTextEmailToAdd.getText().toString(), + editTextEmailTitle.getText().toString() ); senderModel.setJsonSetting(JSON.toJSONString(emailSettingVoNew)); SenderUtil.updateSender(senderModel); @@ -419,8 +424,6 @@ public class SenderActivity extends AppCompatActivity { } show.dismiss(); - - }); buttonEmailDel.setOnClickListener(view -> { if (senderModel != null) { @@ -438,14 +441,15 @@ public class SenderActivity extends AppCompatActivity { String pwd = editTextEmailPsw.getText().toString(); String toEmail = editTextEmailToAdd.getText().toString(); + String title = editTextEmailTitle.getText().toString(); + if (title.isEmpty()) title = "SmsForwarder Title"; + String nickname = editTextEmailNickname.getText().toString(); - if (nickname.equals("")) { - nickname = "SmsForwarder"; - } + if (nickname.isEmpty()) nickname = "SmsForwarder"; if (!host.isEmpty() && !port.isEmpty() && !fromEmail.isEmpty() && !pwd.isEmpty() && !toEmail.isEmpty()) { try { - SenderMailMsg.sendEmail(0, handler, host, port, ssl, fromEmail, nickname, pwd, toEmail, "SmsForwarder Title", R.string.test_content + (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()))); + SenderMailMsg.sendEmail(0, handler, host, port, ssl, fromEmail, nickname, pwd, toEmail, title, R.string.test_content + (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()))); } catch (Exception e) { Toast.makeText(SenderActivity.this, getString(R.string.failed_to_fwd) + e.getMessage(), Toast.LENGTH_LONG).show(); e.printStackTrace(); @@ -454,6 +458,36 @@ public class SenderActivity extends AppCompatActivity { Toast.makeText(SenderActivity.this, R.string.invalid_email, Toast.LENGTH_LONG).show(); } }); + + + Button buttonInsertSender = view1.findViewById(R.id.bt_insert_sender); + buttonInsertSender.setOnClickListener(view -> { + editTextEmailTitle.setFocusable(true); + editTextEmailTitle.requestFocus(); + editTextEmailTitle.append("{{来源号码}}"); + }); + + Button buttonInsertExtra = view1.findViewById(R.id.bt_insert_extra); + buttonInsertExtra.setOnClickListener(view -> { + editTextEmailTitle.setFocusable(true); + editTextEmailTitle.requestFocus(); + editTextEmailTitle.append("{{卡槽信息}}"); + }); + + Button buttonInsertTime = view1.findViewById(R.id.bt_insert_time); + buttonInsertTime.setOnClickListener(view -> { + editTextEmailTitle.setFocusable(true); + editTextEmailTitle.requestFocus(); + editTextEmailTitle.append("{{接收时间}}"); + }); + + Button buttonInsertDeviceName = view1.findViewById(R.id.bt_insert_device_name); + buttonInsertDeviceName.setOnClickListener(view -> { + editTextEmailTitle.setFocusable(true); + editTextEmailTitle.requestFocus(); + editTextEmailTitle.append("{{设备名称}}"); + }); + } //Bark diff --git a/app/src/main/java/com/idormy/sms/forwarder/model/vo/EmailSettingVo.java b/app/src/main/java/com/idormy/sms/forwarder/model/vo/EmailSettingVo.java index 19f31aeb..6baf95a0 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/model/vo/EmailSettingVo.java +++ b/app/src/main/java/com/idormy/sms/forwarder/model/vo/EmailSettingVo.java @@ -13,11 +13,12 @@ public class EmailSettingVo implements Serializable { private String nickname; private String pwd; private String toEmail; + private String title; public EmailSettingVo() { } - public EmailSettingVo(String host, String port, Boolean ssl, String fromEmail, String nickname, String pwd, String toEmail) { + public EmailSettingVo(String host, String port, Boolean ssl, String fromEmail, String nickname, String pwd, String toEmail, String title) { this.host = host; this.port = port; this.ssl = ssl; @@ -25,6 +26,7 @@ public class EmailSettingVo implements Serializable { this.nickname = nickname; this.pwd = pwd; this.toEmail = toEmail; + this.title = title; } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/model/vo/SmsVo.java b/app/src/main/java/com/idormy/sms/forwarder/model/vo/SmsVo.java index 2c1fb1b8..9234a606 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/model/vo/SmsVo.java +++ b/app/src/main/java/com/idormy/sms/forwarder/model/vo/SmsVo.java @@ -29,6 +29,21 @@ public class SmsVo implements Serializable { this.simInfo = simInfo; } + @SuppressLint("SimpleDateFormat") + public String getTitleForSend(String titleTemplate) { + if (titleTemplate == null || titleTemplate.isEmpty()) titleTemplate = "{{来源号码}}"; + + String deviceMark = SettingUtil.getAddExtraDeviceMark().trim(); + String versionName = SettingUtil.getVersionName(); + return titleTemplate.replace("{{来源号码}}", mobile).replace("{{APP包名}}", mobile) + .replace("{{短信内容}}", content).replace("{{通知内容}}", content) + .replace("{{卡槽信息}}", simInfo) + .replace("{{接收时间}}", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date)) + .replace("{{设备名称}}", deviceMark) + .replace("{{当前应用版本号}}", versionName) + .trim(); + } + @SuppressLint("SimpleDateFormat") public String getSmsVoForSend(String ruleSmsTemplate) { String deviceMark = SettingUtil.getAddExtraDeviceMark().trim(); @@ -45,11 +60,13 @@ public class SmsVo implements Serializable { } } + String versionName = SettingUtil.getVersionName(); return customSmsTemplate.replace("{{来源号码}}", mobile).replace("{{APP包名}}", mobile) .replace("{{短信内容}}", content).replace("{{通知内容}}", content) .replace("{{卡槽信息}}", simInfo) .replace("{{接收时间}}", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date)) .replace("{{设备名称}}", deviceMark) + .replace("{{当前应用版本号}}", versionName) .trim(); } diff --git a/app/src/main/java/com/idormy/sms/forwarder/sender/SendUtil.java b/app/src/main/java/com/idormy/sms/forwarder/sender/SendUtil.java index 28895c8f..7419829d 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/sender/SendUtil.java +++ b/app/src/main/java/com/idormy/sms/forwarder/sender/SendUtil.java @@ -133,7 +133,7 @@ public class SendUtil { if (emailSettingVo != null) { try { SenderMailMsg.sendEmail(logId, handError, emailSettingVo.getHost(), emailSettingVo.getPort(), emailSettingVo.getSsl(), emailSettingVo.getFromEmail(), emailSettingVo.getNickname(), - emailSettingVo.getPwd(), emailSettingVo.getToEmail(), smsVo.getMobile(), smsVo.getSmsVoForSend(smsTemplate)); + emailSettingVo.getPwd(), emailSettingVo.getToEmail(), smsVo.getTitleForSend(emailSettingVo.getTitle()), smsVo.getSmsVoForSend(smsTemplate)); } catch (Exception e) { LogUtil.updateLog(logId, 0, e.getMessage()); Log.e(TAG, "senderSendMsg: SenderMailMsg error " + e.getMessage()); diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/SettingUtil.java b/app/src/main/java/com/idormy/sms/forwarder/utils/SettingUtil.java index bd0b850b..362f0db1 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/SettingUtil.java +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/SettingUtil.java @@ -3,6 +3,8 @@ package com.idormy.sms.forwarder.utils; import android.annotation.SuppressLint; import android.content.Context; import android.content.SharedPreferences; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; import android.preference.PreferenceManager; import android.util.Log; @@ -203,4 +205,19 @@ public class SettingUtil { public static void setPrevNoticeHash(String key, String value) { sp_setting.edit().putString(key, value).apply(); } + + //获取当前版本名称 + public static String getVersionName() { + // 获取PackageManager的实例 + PackageManager packageManager = context.getPackageManager(); + // getPackageName()是你当前类的包名,0代表是获取版本信息 + PackageInfo packInfo = null; + try { + packInfo = packageManager.getPackageInfo(context.getPackageName(), 0); + return packInfo.versionName; + } catch (PackageManager.NameNotFoundException e) { + e.printStackTrace(); + return ""; + } + } } diff --git a/app/src/main/res/layout/alert_dialog_setview_email.xml b/app/src/main/res/layout/alert_dialog_setview_email.xml index 3af22b47..1ecf20ad 100644 --- a/app/src/main/res/layout/alert_dialog_setview_email.xml +++ b/app/src/main/res/layout/alert_dialog_setview_email.xml @@ -189,6 +189,102 @@ tools:ignore="LabelFor" /> + + + + + + + + + + + + + +