diff --git a/README.md b/README.md index e60fa5ef..c4e4c5cd 100644 --- a/README.md +++ b/README.md @@ -208,6 +208,7 @@ + [v1.6.3](app/release/SmsForwarder_release_20210313_1.6.3.apk) 转发到webhook支持GET方式(节点改变,原配置要重新编辑);兼容Android5.0(待验证,仅minSdkVersion改为21);修复钉钉机器人没启用加签时url拼接错误问题 + [v1.6.4](app/release/SmsForwarder_release_20210313_1.6.4.apk) Android8.1以下手机重启后尝试启动主界面,以便动态获取权限(修复开机自启后无法转发短信,要打开软件后才会转发短信的问题) + [v1.7.0](app/release/SmsForwarder_release_20210318_1.7.0.apk) 新增转发到其他手机短信 & 避免热插卡时FC & 规则展示优化 & 获取多卡信息&获取卡槽备注优化 & 新增恢复初始化配置 + + [v1.7.1](app/release/SmsForwarder_release_20210321_1.7.1.apk) 新增转发记录的转发状态(成功/失败&应答信息) -------- diff --git a/app/release/SmsForwarder_release_20210321_1.7.1.apk b/app/release/SmsForwarder_release_20210321_1.7.1.apk new file mode 100644 index 00000000..5672c583 Binary files /dev/null and b/app/release/SmsForwarder_release_20210321_1.7.1.apk differ diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json index 1f449888..ba8dbf8d 100644 --- a/app/release/output-metadata.json +++ b/app/release/output-metadata.json @@ -10,9 +10,9 @@ { "type": "SINGLE", "filters": [], - "versionCode": 21, - "versionName": "1.7.0", - "outputFile": "SmsForwarder_release_20210318_1.7.0.apk" + "versionCode": 22, + "versionName": "1.7.1", + "outputFile": "SmsForwarder_release_20210321_1.7.1.apk" } ] } \ No newline at end of file diff --git a/app/src/main/java/com/idormy/sms/forwarder/MainActivity.java b/app/src/main/java/com/idormy/sms/forwarder/MainActivity.java index 521ebb30..23011cee 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/MainActivity.java +++ b/app/src/main/java/com/idormy/sms/forwarder/MainActivity.java @@ -197,9 +197,9 @@ public class MainActivity extends AppCompatActivity implements ReFlashListView.I builder.setTitle("详情"); String simInfo = logVo.getSimInfo(); if (simInfo != null) { - builder.setMessage(logVo.getFrom() + "\n\n" + logVo.getContent() + "\n\n" + logVo.getSimInfo() + "\n\n" + logVo.getRule() + "\n\n" + aUtil.utc2Local(logVo.getTime())); + builder.setMessage(logVo.getFrom() + "\n\n" + logVo.getContent() + "\n\n" + logVo.getSimInfo() + "\n\n" + logVo.getRule() + "\n\n" + aUtil.utc2Local(logVo.getTime()) + "\n\nResponse:" + logVo.getForwardResponse()); } else { - builder.setMessage(logVo.getFrom() + "\n\n" + logVo.getContent() + "\n\n" + logVo.getRule() + "\n\n" + aUtil.utc2Local(logVo.getTime())); + builder.setMessage(logVo.getFrom() + "\n\n" + logVo.getContent() + "\n\n" + logVo.getRule() + "\n\n" + aUtil.utc2Local(logVo.getTime()) + "\n\nResponse:" + logVo.getForwardResponse()); } builder.show(); } 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 90270c1f..0a8a6e84 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/SenderActivity.java +++ b/app/src/main/java/com/idormy/sms/forwarder/SenderActivity.java @@ -337,7 +337,7 @@ public class SenderActivity extends AppCompatActivity { Boolean atAll = switchDingdingAtAll.isChecked(); if (token != null && !token.isEmpty()) { try { - SenderDingdingMsg.sendMsg(handler, token, secret, atMobiles, atAll, "测试内容(content)@" + (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()))); + SenderDingdingMsg.sendMsg(0, handler, token, secret, atMobiles, atAll, "测试内容(content)@" + (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()))); } catch (Exception e) { Toast.makeText(SenderActivity.this, "发送失败:" + e.getMessage(), Toast.LENGTH_LONG).show(); e.printStackTrace(); @@ -454,7 +454,7 @@ public class SenderActivity extends AppCompatActivity { String toemail = editTextEmailToAdd.getText().toString(); if (!host.isEmpty() && !port.isEmpty() && !fromemail.isEmpty() && !pwd.isEmpty() && !toemail.isEmpty()) { try { - SenderMailMsg.sendEmail(handler, host, port, ssl, fromemail, pwd, toemail, "SmsForwarder Title", "测试内容(content)@" + (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()))); + SenderMailMsg.sendEmail(0, handler, host, port, ssl, fromemail, pwd, toemail, "SmsForwarder Title", "测试内容(content)@" + (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()))); } catch (Exception e) { Toast.makeText(SenderActivity.this, "发送失败:" + e.getMessage(), Toast.LENGTH_LONG).show(); e.printStackTrace(); @@ -544,7 +544,7 @@ public class SenderActivity extends AppCompatActivity { String barkServer = editTextBarkServer.getText().toString(); if (!barkServer.isEmpty()) { try { - SenderBarkMsg.sendMsg(handler, barkServer, "19999999999", "【京东】验证码为387481(切勿将验证码告知他人),请在页面中输入完成验证,如有问题请点击 ihelp.jd.com 联系京东客服"); + SenderBarkMsg.sendMsg(0, handler, barkServer, "19999999999", "【京东】验证码为387481(切勿将验证码告知他人),请在页面中输入完成验证,如有问题请点击 ihelp.jd.com 联系京东客服"); } catch (Exception e) { Toast.makeText(SenderActivity.this, "发送失败:" + e.getMessage(), Toast.LENGTH_LONG).show(); e.printStackTrace(); @@ -635,7 +635,7 @@ public class SenderActivity extends AppCompatActivity { String serverchanServer = editTextServerChanSendKey.getText().toString(); if (!serverchanServer.isEmpty()) { try { - SenderServerChanMsg.sendMsg(handler, serverchanServer, "19999999999", "【京东】验证码为387481(切勿将验证码告知他人),请在页面中输入完成验证,如有问题请点击 ihelp.jd.com 联系京东客服"); + SenderServerChanMsg.sendMsg(0, handler, serverchanServer, "19999999999", "【京东】验证码为387481(切勿将验证码告知他人),请在页面中输入完成验证,如有问题请点击 ihelp.jd.com 联系京东客服"); } catch (Exception e) { Toast.makeText(SenderActivity.this, "发送失败:" + e.getMessage(), Toast.LENGTH_LONG).show(); e.printStackTrace(); @@ -735,7 +735,7 @@ public class SenderActivity extends AppCompatActivity { String method = radioGroupWebNotifyMethod.getCheckedRadioButtonId() == R.id.radioWebNotifyMethodGet ? "GET" : "POST"; if (!webServer.isEmpty()) { try { - SenderWebNotifyMsg.sendMsg(handler, webServer, secret, method, "SmsForwarder Title", "测试内容(content)@" + (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()))); + SenderWebNotifyMsg.sendMsg(0, handler, webServer, secret, method, "SmsForwarder Title", "测试内容(content)@" + (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()))); } catch (Exception e) { Toast.makeText(SenderActivity.this, "发送失败:" + e.getMessage(), Toast.LENGTH_LONG).show(); e.printStackTrace(); @@ -826,7 +826,7 @@ public class SenderActivity extends AppCompatActivity { String webHook = editTextQYWXGroupRobotWebHook.getText().toString(); if (!webHook.isEmpty()) { try { - SenderQyWxGroupRobotMsg.sendMsg(handler, webHook, "SmsForwarder Title", "测试内容(content)@" + (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()))); + SenderQyWxGroupRobotMsg.sendMsg(0, handler, webHook, "SmsForwarder Title", "测试内容(content)@" + (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()))); } catch (Exception e) { Toast.makeText(SenderActivity.this, "发送失败:" + e.getMessage(), Toast.LENGTH_LONG).show(); e.printStackTrace(); @@ -957,7 +957,7 @@ public class SenderActivity extends AppCompatActivity { //Boolean atAll = switchQYWXAppAtAll.isChecked(); if (toUser != null && !toUser.isEmpty()) { try { - SenderQyWxAppMsg.sendMsg(handler, cropID, agentID, secret, toUser, "测试内容(content)@" + (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())), true); + SenderQyWxAppMsg.sendMsg(0, handler, cropID, agentID, secret, toUser, "测试内容(content)@" + (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())), true); } catch (Exception e) { Toast.makeText(SenderActivity.this, "发送失败:" + e.getMessage(), Toast.LENGTH_LONG).show(); e.printStackTrace(); @@ -1055,7 +1055,7 @@ public class SenderActivity extends AppCompatActivity { String chatId = editTextTelegramChatId.getText().toString(); if (!apiToken.isEmpty() && !chatId.isEmpty()) { try { - SenderTelegramMsg.sendMsg(handler, apiToken, chatId, "19999999999", "【京东】验证码为387481(切勿将验证码告知他人),请在页面中输入完成验证,如有问题请点击 ihelp.jd.com 联系京东客服"); + SenderTelegramMsg.sendMsg(0, handler, apiToken, chatId, "19999999999", "【京东】验证码为387481(切勿将验证码告知他人),请在页面中输入完成验证,如有问题请点击 ihelp.jd.com 联系京东客服"); } catch (Exception e) { Toast.makeText(SenderActivity.this, "发送失败:" + e.getMessage(), Toast.LENGTH_LONG).show(); e.printStackTrace(); @@ -1160,7 +1160,7 @@ public class SenderActivity extends AppCompatActivity { Boolean onlyNoNetwork = switchSmsOnlyNoNetwork.isChecked(); if (!mobiles.isEmpty() && !mobiles.isEmpty()) { try { - SenderSmsMsg.sendMsg(handler, simSlot, mobiles, onlyNoNetwork, "19999999999", "【京东】验证码为387481(切勿将验证码告知他人),请在页面中输入完成验证,如有问题请点击 ihelp.jd.com 联系京东客服"); + SenderSmsMsg.sendMsg(0, handler, simSlot, mobiles, onlyNoNetwork, "19999999999", "【京东】验证码为387481(切勿将验证码告知他人),请在页面中输入完成验证,如有问题请点击 ihelp.jd.com 联系京东客服"); } catch (Exception e) { Toast.makeText(SenderActivity.this, "发送失败:" + e.getMessage(), Toast.LENGTH_LONG).show(); e.printStackTrace(); diff --git a/app/src/main/java/com/idormy/sms/forwarder/adapter/LogAdapter.java b/app/src/main/java/com/idormy/sms/forwarder/adapter/LogAdapter.java index 20bd340b..66d14e38 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/adapter/LogAdapter.java +++ b/app/src/main/java/com/idormy/sms/forwarder/adapter/LogAdapter.java @@ -1,6 +1,7 @@ package com.idormy.sms.forwarder.adapter; import android.content.Context; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -60,6 +61,7 @@ public class LogAdapter extends ArrayAdapter { viewHolder.tLogRule = view.findViewById(R.id.tlog_rule); viewHolder.tLogTime = view.findViewById(R.id.tlog_time); viewHolder.senderImage = view.findViewById(R.id.tlog_sender_image); + viewHolder.statusImage = view.findViewById(R.id.tlog_status_image); viewHolder.simImage = view.findViewById(R.id.tlog_sim_image); // 将ViewHolder存储在View中(即将控件的实例存储在其中) @@ -77,6 +79,7 @@ public class LogAdapter extends ArrayAdapter { viewHolder.tLogTime.setText(aUtil.friendlyTime(logVo.getTime())); viewHolder.senderImage.setImageResource(logVo.getSenderImageId()); viewHolder.simImage.setImageResource(logVo.getSimImageId()); + viewHolder.statusImage.setImageResource(logVo.getStatusImageId()); } return view; @@ -116,5 +119,6 @@ public class LogAdapter extends ArrayAdapter { TextView tLogTime; ImageView senderImage; ImageView simImage; + ImageView statusImage; } } \ No newline at end of file diff --git a/app/src/main/java/com/idormy/sms/forwarder/model/LogTable.java b/app/src/main/java/com/idormy/sms/forwarder/model/LogTable.java index 29af7ce6..c7c05ee6 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/model/LogTable.java +++ b/app/src/main/java/com/idormy/sms/forwarder/model/LogTable.java @@ -16,5 +16,7 @@ public final class LogTable { public static final String COLUMN_NAME_RULE_ID = "rule_id"; public static final String COLUMN_NAME_TIME = "time"; public static final String COLUMN_NAME_SIM_INFO = "sim_info"; + public static final String COLUMN_NAME_FORWARD_STATUS = "forward_status"; + public static final String COLUMN_NAME_FORWARD_RESPONSE = "forward_response"; } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/model/vo/LogVo.java b/app/src/main/java/com/idormy/sms/forwarder/model/vo/LogVo.java index 56cb3b19..b9fce903 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/model/vo/LogVo.java +++ b/app/src/main/java/com/idormy/sms/forwarder/model/vo/LogVo.java @@ -10,8 +10,10 @@ public class LogVo { private String rule; private int senderImageId; private String time; + private int forwardStatus; + private String forwardResponse; - public LogVo(Long id, String from, String content, String simInfo, String time, String rule, int senderImageId) { + public LogVo(Long id, String from, String content, String simInfo, String time, String rule, int senderImageId, int forwardStatus, String forwardResponse) { this.id = id; this.from = from; this.content = content; @@ -19,6 +21,8 @@ public class LogVo { this.time = time; this.rule = rule; this.senderImageId = senderImageId; + this.forwardStatus = forwardStatus; + this.forwardResponse = forwardResponse; } public LogVo() { @@ -65,6 +69,10 @@ public class LogVo { return time; } + public String getForwardResponse() { + return forwardResponse; + } + public int getSenderImageId() { return senderImageId; } @@ -81,4 +89,12 @@ public class LogVo { return R.mipmap.sim1; } + + public int getStatusImageId() { + if (this.forwardStatus == 1) { + return R.drawable.ic_round_check; + } + + return R.drawable.ic_round_cancel; + } } 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 34e924db..96ae7762 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 @@ -60,8 +60,8 @@ public class SendUtil { List senderModels = SenderUtil.getSender(ruleModel.getSenderId(), null); for (SenderModel senderModel : senderModels ) { - LogUtil.addLog(new LogModel(smsVo.getMobile(), smsVo.getContent(), smsVo.getSimInfo(), ruleModel.getId())); - SendUtil.senderSendMsgNoHandError(smsVo, senderModel); + long logId = LogUtil.addLog(new LogModel(smsVo.getMobile(), smsVo.getContent(), smsVo.getSimInfo(), ruleModel.getId())); + SendUtil.senderSendMsgNoHandError(smsVo, senderModel, logId); } } } catch (Exception e) { @@ -94,15 +94,15 @@ public class SendUtil { for (SenderModel senderModel : senderModels ) { - SendUtil.senderSendMsg(handError, smsVo, senderModel); + SendUtil.senderSendMsg(handError, smsVo, senderModel, 0); } } - public static void senderSendMsgNoHandError(SmsVo smsVo, SenderModel senderModel) { - SendUtil.senderSendMsg(null, smsVo, senderModel); + public static void senderSendMsgNoHandError(SmsVo smsVo, SenderModel senderModel, long logId) { + SendUtil.senderSendMsg(null, smsVo, senderModel, logId); } - public static void senderSendMsg(Handler handError, SmsVo smsVo, SenderModel senderModel) { + public static void senderSendMsg(Handler handError, SmsVo smsVo, SenderModel senderModel, long logId) { Log.i(TAG, "senderSendMsg smsVo:" + smsVo + "senderModel:" + senderModel); switch (senderModel.getType()) { @@ -112,8 +112,9 @@ public class SendUtil { DingDingSettingVo dingDingSettingVo = JSON.parseObject(senderModel.getJsonSetting(), DingDingSettingVo.class); if (dingDingSettingVo != null) { try { - SenderDingdingMsg.sendMsg(handError, dingDingSettingVo.getToken(), dingDingSettingVo.getSecret(), dingDingSettingVo.getAtMobils(), dingDingSettingVo.getAtAll(), smsVo.getSmsVoForSend()); + SenderDingdingMsg.sendMsg(logId, handError, dingDingSettingVo.getToken(), dingDingSettingVo.getSecret(), dingDingSettingVo.getAtMobils(), dingDingSettingVo.getAtAll(), smsVo.getSmsVoForSend()); } catch (Exception e) { + LogUtil.updateLog(logId, 0, e.getMessage()); Log.e(TAG, "senderSendMsg: dingding error " + e.getMessage()); } } @@ -126,9 +127,10 @@ public class SendUtil { EmailSettingVo emailSettingVo = JSON.parseObject(senderModel.getJsonSetting(), EmailSettingVo.class); if (emailSettingVo != null) { try { - SenderMailMsg.sendEmail(handError, emailSettingVo.getHost(), emailSettingVo.getPort(), emailSettingVo.getSsl(), emailSettingVo.getFromEmail(), + SenderMailMsg.sendEmail(logId, handError, emailSettingVo.getHost(), emailSettingVo.getPort(), emailSettingVo.getSsl(), emailSettingVo.getFromEmail(), emailSettingVo.getPwd(), emailSettingVo.getToEmail(), smsVo.getMobile(), smsVo.getSmsVoForSend()); } catch (Exception e) { + LogUtil.updateLog(logId, 0, e.getMessage()); Log.e(TAG, "senderSendMsg: SenderMailMsg error " + e.getMessage()); } } @@ -141,8 +143,9 @@ public class SendUtil { BarkSettingVo barkSettingVo = JSON.parseObject(senderModel.getJsonSetting(), BarkSettingVo.class); if (barkSettingVo != null) { try { - SenderBarkMsg.sendMsg(handError, barkSettingVo.getServer(), smsVo.getMobile(), smsVo.getSmsVoForSend()); + SenderBarkMsg.sendMsg(logId, handError, barkSettingVo.getServer(), smsVo.getMobile(), smsVo.getSmsVoForSend()); } catch (Exception e) { + LogUtil.updateLog(logId, 0, e.getMessage()); Log.e(TAG, "senderSendMsg: SenderBarkMsg error " + e.getMessage()); } } @@ -155,8 +158,9 @@ public class SendUtil { WebNotifySettingVo webNotifySettingVo = JSON.parseObject(senderModel.getJsonSetting(), WebNotifySettingVo.class); if (webNotifySettingVo != null) { try { - SenderWebNotifyMsg.sendMsg(handError, webNotifySettingVo.getWebServer(), webNotifySettingVo.getSecret(), webNotifySettingVo.getMethod(), smsVo.getMobile(), smsVo.getSmsVoForSend()); + SenderWebNotifyMsg.sendMsg(logId, handError, webNotifySettingVo.getWebServer(), webNotifySettingVo.getSecret(), webNotifySettingVo.getMethod(), smsVo.getMobile(), smsVo.getSmsVoForSend()); } catch (Exception e) { + LogUtil.updateLog(logId, 0, e.getMessage()); Log.e(TAG, "senderSendMsg: SenderWebNotifyMsg error " + e.getMessage()); } } @@ -169,8 +173,9 @@ public class SendUtil { QYWXGroupRobotSettingVo qywxGroupRobotSettingVo = JSON.parseObject(senderModel.getJsonSetting(), QYWXGroupRobotSettingVo.class); if (qywxGroupRobotSettingVo != null) { try { - SenderQyWxGroupRobotMsg.sendMsg(handError, qywxGroupRobotSettingVo.getWebHook(), smsVo.getMobile(), smsVo.getSmsVoForSend()); + SenderQyWxGroupRobotMsg.sendMsg(logId, handError, qywxGroupRobotSettingVo.getWebHook(), smsVo.getMobile(), smsVo.getSmsVoForSend()); } catch (Exception e) { + LogUtil.updateLog(logId, 0, e.getMessage()); Log.e(TAG, "senderSendMsg: SenderQyWxGroupRobotMsg error " + e.getMessage()); } } @@ -183,8 +188,9 @@ public class SendUtil { QYWXAppSettingVo qYWXAppSettingVo = JSON.parseObject(senderModel.getJsonSetting(), QYWXAppSettingVo.class); if (qYWXAppSettingVo != null) { try { - SenderQyWxAppMsg.sendMsg(handError, qYWXAppSettingVo.getCorpID(), qYWXAppSettingVo.getAgentID(), qYWXAppSettingVo.getSecret(), qYWXAppSettingVo.getToUser(), smsVo.getSmsVoForSend(), false); + SenderQyWxAppMsg.sendMsg(logId, handError, qYWXAppSettingVo.getCorpID(), qYWXAppSettingVo.getAgentID(), qYWXAppSettingVo.getSecret(), qYWXAppSettingVo.getToUser(), smsVo.getSmsVoForSend(), false); } catch (Exception e) { + LogUtil.updateLog(logId, 0, e.getMessage()); Log.e(TAG, "senderSendMsg: qywx_app error " + e.getMessage()); } } @@ -197,8 +203,9 @@ public class SendUtil { ServerChanSettingVo serverChanSettingVo = JSON.parseObject(senderModel.getJsonSetting(), ServerChanSettingVo.class); if (serverChanSettingVo != null) { try { - SenderServerChanMsg.sendMsg(handError, serverChanSettingVo.getSendKey(), smsVo.getMobile(), smsVo.getSmsVoForSend()); + SenderServerChanMsg.sendMsg(logId, handError, serverChanSettingVo.getSendKey(), smsVo.getMobile(), smsVo.getSmsVoForSend()); } catch (Exception e) { + LogUtil.updateLog(logId, 0, e.getMessage()); Log.e(TAG, "senderSendMsg: SenderServerChanMsg error " + e.getMessage()); } } @@ -211,8 +218,9 @@ public class SendUtil { TelegramSettingVo telegramSettingVo = JSON.parseObject(senderModel.getJsonSetting(), TelegramSettingVo.class); if (telegramSettingVo != null) { try { - SenderTelegramMsg.sendMsg(handError, telegramSettingVo.getApiToken(), telegramSettingVo.getChatId(), smsVo.getMobile(), smsVo.getSmsVoForSend()); + SenderTelegramMsg.sendMsg(logId, handError, telegramSettingVo.getApiToken(), telegramSettingVo.getChatId(), smsVo.getMobile(), smsVo.getSmsVoForSend()); } catch (Exception e) { + LogUtil.updateLog(logId, 0, e.getMessage()); Log.e(TAG, "senderSendMsg: SenderTelegramMsg error " + e.getMessage()); } } @@ -226,7 +234,9 @@ public class SendUtil { if (smsSettingVo != null) { //仅当无网络时启用 if (true == smsSettingVo.getOnlyNoNetwork() && 0 != NetUtil.getNetWorkStatus()) { - Log.d(TAG, "仅当无网络时启用,当前网络状态:" + NetUtil.getNetWorkStatus()); + String msg = "仅当无网络时启用,当前网络状态:" + NetUtil.getNetWorkStatus(); + LogUtil.updateLog(logId, 0, msg); + Log.d(TAG, msg); return; } try { @@ -235,8 +245,9 @@ public class SendUtil { simSlot = Integer.parseInt(smsVo.getSimInfo().substring(3, 4)) - 1; Log.d(TAG, "simSlot = " + simSlot); } - SenderSmsMsg.sendMsg(handError, simSlot, smsSettingVo.getMobiles(), smsSettingVo.getOnlyNoNetwork(), smsVo.getMobile(), smsVo.getSmsVoForSend()); + SenderSmsMsg.sendMsg(logId, handError, simSlot, smsSettingVo.getMobiles(), smsSettingVo.getOnlyNoNetwork(), smsVo.getMobile(), smsVo.getSmsVoForSend()); } catch (Exception e) { + LogUtil.updateLog(logId, 0, e.getMessage()); Log.e(TAG, "senderSendMsg: SenderSmsMsg error " + e.getMessage()); } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/sender/SenderBarkMsg.java b/app/src/main/java/com/idormy/sms/forwarder/sender/SenderBarkMsg.java index e55f6ebd..663d908a 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/sender/SenderBarkMsg.java +++ b/app/src/main/java/com/idormy/sms/forwarder/sender/SenderBarkMsg.java @@ -5,6 +5,8 @@ import android.os.Handler; import android.os.Message; import android.util.Log; +import com.idormy.sms.forwarder.utils.LogUtil; + import java.io.IOException; import java.net.URLEncoder; import java.util.regex.Matcher; @@ -22,7 +24,7 @@ public class SenderBarkMsg { static String TAG = "SenderBarkMsg"; - public static void sendMsg(final Handler handError, String barkServer, String from, String content) throws Exception { + public static void sendMsg(final long logId, final Handler handError, String barkServer, String from, String content) throws Exception { Log.i(TAG, "sendMsg barkServer:" + barkServer + " from:" + from + " content:" + content); if (barkServer == null || barkServer.isEmpty()) { @@ -52,6 +54,7 @@ public class SenderBarkMsg { call.enqueue(new Callback() { @Override public void onFailure(Call call, final IOException e) { + LogUtil.updateLog(logId, 0, e.getMessage()); Log.d(TAG, "onFailure:" + e.getMessage()); if (handError != null) { @@ -70,6 +73,13 @@ public class SenderBarkMsg { final String responseStr = response.body().string(); Log.d(TAG, "Code:" + response.code() + responseStr); + //TODO:粗略解析是否发送成功 + if (responseStr.contains("\"message\":\"success\"")) { + LogUtil.updateLog(logId, 1, responseStr); + } else { + LogUtil.updateLog(logId, 0, responseStr); + } + if (handError != null) { Message msg = new Message(); msg.what = NOTIFY; diff --git a/app/src/main/java/com/idormy/sms/forwarder/sender/SenderDingdingMsg.java b/app/src/main/java/com/idormy/sms/forwarder/sender/SenderDingdingMsg.java index 863dd6c1..5a6e268c 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/sender/SenderDingdingMsg.java +++ b/app/src/main/java/com/idormy/sms/forwarder/sender/SenderDingdingMsg.java @@ -7,6 +7,7 @@ import android.util.Base64; import android.util.Log; import com.alibaba.fastjson.JSON; +import com.idormy.sms.forwarder.utils.LogUtil; import java.io.IOException; import java.net.URLEncoder; @@ -32,7 +33,7 @@ public class SenderDingdingMsg { static String TAG = "SenderDingdingMsg"; - public static void sendMsg(final Handler handError, String token, String secret, String atMobiles, Boolean atAll, String msg) throws Exception { + public static void sendMsg(final long logId, final Handler handError, String token, String secret, String atMobiles, Boolean atAll, String msg) throws Exception { Log.i(TAG, "sendMsg token:" + token + " secret:" + secret + " atMobiles:" + atMobiles + " atAll:" + atAll + " msg:" + msg); if (token == null || token.isEmpty()) { @@ -98,6 +99,7 @@ public class SenderDingdingMsg { call.enqueue(new Callback() { @Override public void onFailure(Call call, final IOException e) { + LogUtil.updateLog(logId, 0, e.getMessage()); Log.d(TAG, "onFailure:" + e.getMessage()); if (handError != null) { @@ -116,6 +118,13 @@ public class SenderDingdingMsg { final String responseStr = response.body().string(); Log.d(TAG, "Code:" + String.valueOf(response.code()) + responseStr); + //TODO:粗略解析是否发送成功 + if (responseStr.contains("\"errcode\":0")) { + LogUtil.updateLog(logId, 1, responseStr); + } else { + LogUtil.updateLog(logId, 0, responseStr); + } + if (handError != null) { android.os.Message msg = new android.os.Message(); msg.what = NOTIFY; diff --git a/app/src/main/java/com/idormy/sms/forwarder/sender/SenderMailMsg.java b/app/src/main/java/com/idormy/sms/forwarder/sender/SenderMailMsg.java index aeca8c17..038abb5d 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/sender/SenderMailMsg.java +++ b/app/src/main/java/com/idormy/sms/forwarder/sender/SenderMailMsg.java @@ -4,6 +4,7 @@ import android.os.Bundle; import android.os.Handler; import android.util.Log; +import com.idormy.sms.forwarder.utils.LogUtil; import com.smailnet.emailkit.Draft; import com.smailnet.emailkit.EmailKit; @@ -13,7 +14,7 @@ import static com.idormy.sms.forwarder.SenderActivity.NOTIFY; public class SenderMailMsg { private static String TAG = "SenderMailMsg"; - public static void sendEmail(final Handler handError, final String host, final String port, final boolean ssl, final String fromemail, final String pwd, final String toAdd, final String title, final String content) { + public static void sendEmail(final long logId, final Handler handError, final String host, final String port, final boolean ssl, final String fromemail, final String pwd, final String toAdd, final String title, final String content) { Log.d(TAG, "sendEmail: host:" + host + " port:" + port + " ssl:" + ssl + " fromemail:" + fromemail + " pwd:" + pwd + " toAdd:" + toAdd); @@ -39,7 +40,8 @@ public class SenderMailMsg { .send(draft, new EmailKit.GetSendCallback() { @Override public void onSuccess() { - Log.i(TAG, "发送成功!"); + LogUtil.updateLog(logId, 1, "发送成功"); + Log.i(TAG, "发送成功"); if (handError != null) { android.os.Message msg = new android.os.Message(); msg.what = NOTIFY; @@ -52,6 +54,7 @@ public class SenderMailMsg { @Override public void onFailure(String errMsg) { + LogUtil.updateLog(logId, 0, errMsg); Log.i(TAG, "发送失败,错误:" + errMsg); if (handError != null) { android.os.Message msg = new android.os.Message(); @@ -68,6 +71,7 @@ public class SenderMailMsg { EmailKit.destroy(); } catch (Exception e) { + LogUtil.updateLog(logId, 0, e.getMessage()); Log.e(TAG, e.getMessage(), e); if (handError != null) { android.os.Message msg = new android.os.Message(); diff --git a/app/src/main/java/com/idormy/sms/forwarder/sender/SenderQyWxAppMsg.java b/app/src/main/java/com/idormy/sms/forwarder/sender/SenderQyWxAppMsg.java index e1cfff45..607c2f41 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/sender/SenderQyWxAppMsg.java +++ b/app/src/main/java/com/idormy/sms/forwarder/sender/SenderQyWxAppMsg.java @@ -8,6 +8,7 @@ import android.util.Log; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.idormy.sms.forwarder.MyApplication; +import com.idormy.sms.forwarder.utils.LogUtil; import java.io.IOException; import java.util.HashMap; @@ -27,7 +28,7 @@ public class SenderQyWxAppMsg { static String TAG = "SenderQyWxAppMsg"; - public static void sendMsg(final Handler handError, String corpID, String agentID, String secret, String toUser, String content, boolean forceRefresh) throws Exception { + public static void sendMsg(final long logId, final Handler handError, String corpID, String agentID, String secret, String toUser, String content, boolean forceRefresh) throws Exception { Log.i(TAG, "sendMsg corpID:" + corpID + " agentID:" + agentID + " secret:" + secret + " toUser:" + toUser + " content:" + content + " forceRefresh:" + forceRefresh); if (corpID == null || corpID.isEmpty() || agentID == null || agentID.isEmpty() || secret == null || secret.isEmpty()) { @@ -49,6 +50,7 @@ public class SenderQyWxAppMsg { call.enqueue(new Callback() { @Override public void onFailure(Call call, final IOException e) { + LogUtil.updateLog(logId, 0, e.getMessage()); Log.d(TAG, "onFailure:" + e.getMessage()); if (handError != null) { Message msg = new Message(); @@ -72,9 +74,10 @@ public class SenderQyWxAppMsg { Log.d(TAG, "access_token:" + MyApplication.QyWxAccessToken); Log.d(TAG, "expires_in:" + MyApplication.QyWxAccessTokenExpiresIn); - sendTextMsg(handError, agentID, toUser, content); + sendTextMsg(logId, handError, agentID, toUser, content); } else { String errmsg = jsonObject.getString("errmsg"); + LogUtil.updateLog(logId, 0, errmsg); Log.d(TAG, "onFailure:" + errmsg); if (handError != null) { Message msg = new Message(); @@ -89,13 +92,13 @@ public class SenderQyWxAppMsg { }); } else { - sendTextMsg(handError, agentID, toUser, content); + sendTextMsg(logId, handError, agentID, toUser, content); } } //发送文本消息 - public static void sendTextMsg(final Handler handError, String agentID, String toUser, String content) { + public static void sendTextMsg(final long logId, final Handler handError, String agentID, String toUser, String content) { String sendUrl = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" + MyApplication.QyWxAccessToken; Log.d(TAG, "sendUrl:" + sendUrl); @@ -123,6 +126,7 @@ public class SenderQyWxAppMsg { call.enqueue(new Callback() { @Override public void onFailure(Call call, final IOException e) { + LogUtil.updateLog(logId, 0, e.getMessage()); Log.d(TAG, "onFailure:" + e.getMessage()); if (handError != null) { android.os.Message msg = new android.os.Message(); @@ -139,6 +143,13 @@ public class SenderQyWxAppMsg { final String responseStr = response.body().string(); Log.d(TAG, "Code:" + String.valueOf(response.code()) + " Response: " + responseStr); + //TODO:粗略解析是否发送成功 + if (responseStr.contains("\"errcode\":0")) { + LogUtil.updateLog(logId, 1, responseStr); + } else { + LogUtil.updateLog(logId, 0, responseStr); + } + if (handError != null) { android.os.Message msg = new android.os.Message(); msg.what = NOTIFY; diff --git a/app/src/main/java/com/idormy/sms/forwarder/sender/SenderQyWxGroupRobotMsg.java b/app/src/main/java/com/idormy/sms/forwarder/sender/SenderQyWxGroupRobotMsg.java index b028b1af..b1b5e2c5 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/sender/SenderQyWxGroupRobotMsg.java +++ b/app/src/main/java/com/idormy/sms/forwarder/sender/SenderQyWxGroupRobotMsg.java @@ -4,6 +4,8 @@ import android.os.Bundle; import android.os.Handler; import android.util.Log; +import com.idormy.sms.forwarder.utils.LogUtil; + import java.io.IOException; import okhttp3.Call; @@ -20,7 +22,7 @@ public class SenderQyWxGroupRobotMsg { static String TAG = "SenderQyWxGroupRobotMsg"; - public static void sendMsg(final Handler handError, String webHook, String from, String content) throws Exception { + public static void sendMsg(final long logId, final Handler handError, String webHook, String from, String content) throws Exception { Log.i(TAG, "sendMsg webHook:" + webHook + " from:" + from + " content:" + content); if (webHook == null || webHook.isEmpty()) { @@ -41,10 +43,9 @@ public class SenderQyWxGroupRobotMsg { call.enqueue(new Callback() { @Override public void onFailure(Call call, final IOException e) { + LogUtil.updateLog(logId, 0, e.getMessage()); Log.d(TAG, "onFailure:" + e.getMessage()); -// SendHistory.addHistory("钉钉转发:"+msgf+"onFailure:" + e.getMessage()); - if (handError != null) { android.os.Message msg = new android.os.Message(); msg.what = NOTIFY; @@ -53,8 +54,6 @@ public class SenderQyWxGroupRobotMsg { msg.setData(bundle); handError.sendMessage(msg); } - - } @Override @@ -62,6 +61,13 @@ public class SenderQyWxGroupRobotMsg { final String responseStr = response.body().string(); Log.d(TAG, "Code:" + String.valueOf(response.code()) + responseStr); + //TODO:粗略解析是否发送成功 + if (responseStr.contains("\"errcode\":0")) { + LogUtil.updateLog(logId, 1, responseStr); + } else { + LogUtil.updateLog(logId, 0, responseStr); + } + if (handError != null) { android.os.Message msg = new android.os.Message(); msg.what = NOTIFY; @@ -71,7 +77,6 @@ public class SenderQyWxGroupRobotMsg { handError.sendMessage(msg); Log.d(TAG, "Coxxyyde:" + String.valueOf(response.code()) + responseStr); } - } }); } diff --git a/app/src/main/java/com/idormy/sms/forwarder/sender/SenderServerChanMsg.java b/app/src/main/java/com/idormy/sms/forwarder/sender/SenderServerChanMsg.java index 5144861f..8058530c 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/sender/SenderServerChanMsg.java +++ b/app/src/main/java/com/idormy/sms/forwarder/sender/SenderServerChanMsg.java @@ -5,6 +5,8 @@ import android.os.Handler; import android.os.Message; import android.util.Log; +import com.idormy.sms.forwarder.utils.LogUtil; + import java.io.IOException; import okhttp3.Call; @@ -21,7 +23,7 @@ public class SenderServerChanMsg { static String TAG = "SenderServerChanMsg"; - public static void sendMsg(final Handler handError, String sendKey, String title, String desp) throws Exception { + public static void sendMsg(final long logId, final Handler handError, String sendKey, String title, String desp) throws Exception { Log.i(TAG, "sendMsg sendKey:" + sendKey + " title:" + title + " desp:" + desp); if (sendKey == null || sendKey.isEmpty()) { @@ -44,6 +46,7 @@ public class SenderServerChanMsg { call.enqueue(new Callback() { @Override public void onFailure(Call call, final IOException e) { + LogUtil.updateLog(logId, 0, e.getMessage()); Log.d(TAG, "onFailure:" + e.getMessage()); if (handError != null) { @@ -62,6 +65,13 @@ public class SenderServerChanMsg { final String responseStr = response.body().string(); Log.d(TAG, "Code:" + response.code() + responseStr); + //TODO:粗略解析是否发送成功 + if (responseStr.contains("\"code\":0")) { + LogUtil.updateLog(logId, 1, responseStr); + } else { + LogUtil.updateLog(logId, 0, responseStr); + } + if (handError != null) { Message msg = new Message(); msg.what = NOTIFY; diff --git a/app/src/main/java/com/idormy/sms/forwarder/sender/SenderSmsMsg.java b/app/src/main/java/com/idormy/sms/forwarder/sender/SenderSmsMsg.java index c2850675..0acc15e4 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/sender/SenderSmsMsg.java +++ b/app/src/main/java/com/idormy/sms/forwarder/sender/SenderSmsMsg.java @@ -3,6 +3,7 @@ package com.idormy.sms.forwarder.sender; import android.os.Handler; import android.util.Log; +import com.idormy.sms.forwarder.utils.LogUtil; import com.idormy.sms.forwarder.utils.SimUtil; import com.idormy.sms.forwarder.utils.SmsUtil; @@ -10,12 +11,19 @@ public class SenderSmsMsg { static String TAG = "SenderSmsMsg"; - public static void sendMsg(final Handler handError, int simSlot, String mobiles, Boolean onlyNoNetwork, String from, String text) throws Exception { + public static void sendMsg(final long logId, final Handler handError, int simSlot, String mobiles, Boolean onlyNoNetwork, String from, String text) throws Exception { Log.i(TAG, "sendMsg simSlot:" + simSlot + " mobiles:" + mobiles + " onlyNoNetwork:" + onlyNoNetwork + " from:" + from + " text:" + text); //TODO:simSlot转subId int subId = SimUtil.getSubscriptionIdBySimId(simSlot); - SmsUtil.sendSms(subId, mobiles, text); + String res = SmsUtil.sendSms(subId, mobiles, text); + + //TODO:粗略解析是否发送成功 + if (res == null) { + LogUtil.updateLog(logId, 1, "发送成功"); + } else { + LogUtil.updateLog(logId, 0, res); + } } } diff --git a/app/src/main/java/com/idormy/sms/forwarder/sender/SenderTelegramMsg.java b/app/src/main/java/com/idormy/sms/forwarder/sender/SenderTelegramMsg.java index c5edfd31..61c8483b 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/sender/SenderTelegramMsg.java +++ b/app/src/main/java/com/idormy/sms/forwarder/sender/SenderTelegramMsg.java @@ -6,6 +6,7 @@ import android.os.Message; import android.util.Log; import com.alibaba.fastjson.JSON; +import com.idormy.sms.forwarder.utils.LogUtil; import java.io.IOException; import java.util.HashMap; @@ -25,7 +26,7 @@ public class SenderTelegramMsg { static String TAG = "SenderTelegramMsg"; - public static void sendMsg(final Handler handError, String apiToken, String chatId, String from, String text) throws Exception { + public static void sendMsg(final long logId, final Handler handError, String apiToken, String chatId, String from, String text) throws Exception { Log.i(TAG, "sendMsg apiToken:" + apiToken + " chatId:" + chatId + " text:" + text); if (apiToken == null || apiToken.isEmpty()) { @@ -57,6 +58,7 @@ public class SenderTelegramMsg { call.enqueue(new Callback() { @Override public void onFailure(Call call, final IOException e) { + LogUtil.updateLog(logId, 0, e.getMessage()); Log.d(TAG, "onFailure:" + e.getMessage()); if (handError != null) { @@ -75,6 +77,13 @@ public class SenderTelegramMsg { final String responseStr = response.body().string(); Log.d(TAG, "Code:" + response.code() + responseStr); + //TODO:粗略解析是否发送成功 + if (responseStr.contains("\"ok\":true")) { + LogUtil.updateLog(logId, 1, responseStr); + } else { + LogUtil.updateLog(logId, 0, responseStr); + } + if (handError != null) { Message msg = new Message(); msg.what = NOTIFY; diff --git a/app/src/main/java/com/idormy/sms/forwarder/sender/SenderWebNotifyMsg.java b/app/src/main/java/com/idormy/sms/forwarder/sender/SenderWebNotifyMsg.java index ef1b8d55..57e9a145 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/sender/SenderWebNotifyMsg.java +++ b/app/src/main/java/com/idormy/sms/forwarder/sender/SenderWebNotifyMsg.java @@ -5,6 +5,8 @@ import android.os.Handler; import android.util.Base64; import android.util.Log; +import com.idormy.sms.forwarder.utils.LogUtil; + import java.io.IOException; import java.net.URLEncoder; @@ -25,7 +27,7 @@ public class SenderWebNotifyMsg { static String TAG = "SenderWebNotifyMsg"; - public static void sendMsg(final Handler handError, String webServer, String secret, String method, String from, String content) throws Exception { + public static void sendMsg(final long logId, final Handler handError, String webServer, String secret, String method, String from, String content) throws Exception { Log.i(TAG, "sendMsg webServer:" + webServer + " from:" + from + " content:" + content); if (webServer == null || webServer.isEmpty()) { @@ -73,6 +75,7 @@ public class SenderWebNotifyMsg { call.enqueue(new Callback() { @Override public void onFailure(Call call, final IOException e) { + LogUtil.updateLog(logId, 0, e.getMessage()); Log.d(TAG, "onFailure:" + e.getMessage()); if (handError != null) { @@ -91,6 +94,13 @@ public class SenderWebNotifyMsg { final String responseStr = response.body().string(); Log.d(TAG, "Code:" + response.code() + " Response:" + responseStr); + //TODO:粗略解析是否发送成功 + if (responseStr.contains("\"code\":1")) { + LogUtil.updateLog(logId, 1, responseStr); + } else { + LogUtil.updateLog(logId, 0, responseStr); + } + if (handError != null) { android.os.Message msg = new android.os.Message(); msg.what = NOTIFY; diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/DbHelper.java b/app/src/main/java/com/idormy/sms/forwarder/utils/DbHelper.java index 72849e69..d6db8ccb 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/DbHelper.java +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/DbHelper.java @@ -15,7 +15,7 @@ import java.util.List; public class DbHelper extends SQLiteOpenHelper { // If you change the database schema, you must increment the database version. public static final String TAG = "DbHelper"; - public static final int DATABASE_VERSION = 3; + public static final int DATABASE_VERSION = 4; public static final String DATABASE_NAME = "sms_forwarder.db"; private static final List SQL_CREATE_ENTRIES = @@ -26,6 +26,8 @@ public class DbHelper extends SQLiteOpenHelper { LogTable.LogEntry.COLUMN_NAME_CONTENT + " TEXT," + LogTable.LogEntry.COLUMN_NAME_SIM_INFO + " TEXT," + LogTable.LogEntry.COLUMN_NAME_RULE_ID + " INTEGER," + + LogTable.LogEntry.COLUMN_NAME_FORWARD_STATUS + " INTEGER NOT NULL DEFAULT 1," + + LogTable.LogEntry.COLUMN_NAME_FORWARD_RESPONSE + " TEXT NOT NULL DEFAULT 'ok'," + LogTable.LogEntry.COLUMN_NAME_TIME + " TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP)" , "CREATE TABLE " + RuleTable.RuleEntry.TABLE_NAME + " (" + RuleTable.RuleEntry._ID + " INTEGER PRIMARY KEY," + @@ -82,6 +84,12 @@ public class DbHelper extends SQLiteOpenHelper { String sql = "Alter table " + RuleTable.RuleEntry.TABLE_NAME + " add column " + RuleTable.RuleEntry.COLUMN_NAME_SIM_SLOT + " TEXT NOT NULL DEFAULT 'ALL' "; db.execSQL(sql); } + if (oldVersion < 4) { //添加转发状态与返回信息 + String sql = "Alter table " + LogTable.LogEntry.TABLE_NAME + " add column " + LogTable.LogEntry.COLUMN_NAME_FORWARD_STATUS + " INTEGER NOT NULL DEFAULT 1 "; + db.execSQL(sql); + sql = "Alter table " + LogTable.LogEntry.TABLE_NAME + " add column " + LogTable.LogEntry.COLUMN_NAME_FORWARD_RESPONSE + " TEXT NOT NULL DEFAULT 'ok' "; + db.execSQL(sql); + } } public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) { diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/LogUtil.java b/app/src/main/java/com/idormy/sms/forwarder/utils/LogUtil.java index ac0741cc..9e9a8075 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/LogUtil.java +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/LogUtil.java @@ -82,6 +82,22 @@ public class LogUtil { } + public static int updateLog(Long id, int forward_status, String forward_response) { + if (id == null || id <= 0) return 0; + + String selection = LogTable.LogEntry._ID + " = ? "; + List selectionArgList = new ArrayList<>(); + selectionArgList.add(String.valueOf(id)); + + ContentValues values = new ContentValues(); + values.put(LogTable.LogEntry.COLUMN_NAME_FORWARD_STATUS, forward_status); + values.put(LogTable.LogEntry.COLUMN_NAME_FORWARD_RESPONSE, forward_response); + + String[] selectionArgs = selectionArgList.toArray(new String[selectionArgList.size()]); + return db.update(LogTable.LogEntry.TABLE_NAME, values, selection, selectionArgs); + + } + public static List getLog(Long id, String key) { // Define a projection that specifies which columns from the database // you will actually use after this query. @@ -91,6 +107,8 @@ public class LogUtil { LogTable.LogEntry.TABLE_NAME + "." + LogTable.LogEntry.COLUMN_NAME_TIME + " AS " + LogTable.LogEntry.COLUMN_NAME_TIME, LogTable.LogEntry.TABLE_NAME + "." + LogTable.LogEntry.COLUMN_NAME_CONTENT + " AS " + LogTable.LogEntry.COLUMN_NAME_CONTENT, LogTable.LogEntry.TABLE_NAME + "." + LogTable.LogEntry.COLUMN_NAME_SIM_INFO + " AS " + LogTable.LogEntry.COLUMN_NAME_SIM_INFO, + LogTable.LogEntry.TABLE_NAME + "." + LogTable.LogEntry.COLUMN_NAME_FORWARD_STATUS + " AS " + LogTable.LogEntry.COLUMN_NAME_FORWARD_STATUS, + LogTable.LogEntry.TABLE_NAME + "." + LogTable.LogEntry.COLUMN_NAME_FORWARD_RESPONSE + " AS " + LogTable.LogEntry.COLUMN_NAME_FORWARD_RESPONSE, RuleTable.RuleEntry.TABLE_NAME + "." + RuleTable.RuleEntry.COLUMN_NAME_FILED + " AS " + RuleTable.RuleEntry.COLUMN_NAME_FILED, RuleTable.RuleEntry.TABLE_NAME + "." + RuleTable.RuleEntry.COLUMN_NAME_CHECK + " AS " + RuleTable.RuleEntry.COLUMN_NAME_CHECK, RuleTable.RuleEntry.TABLE_NAME + "." + RuleTable.RuleEntry.COLUMN_NAME_VALUE + " AS " + RuleTable.RuleEntry.COLUMN_NAME_VALUE, @@ -152,6 +170,10 @@ public class LogUtil { cursor.getColumnIndexOrThrow(LogTable.LogEntry.COLUMN_NAME_SIM_INFO)); String time = cursor.getString( cursor.getColumnIndexOrThrow(LogTable.LogEntry.COLUMN_NAME_TIME)); + int forwardStatus = cursor.getInt( + cursor.getColumnIndexOrThrow(LogTable.LogEntry.COLUMN_NAME_FORWARD_STATUS)); + String forwardResponse = cursor.getString( + cursor.getColumnIndexOrThrow(LogTable.LogEntry.COLUMN_NAME_FORWARD_RESPONSE)); String ruleFiled = cursor.getString( cursor.getColumnIndexOrThrow(RuleTable.RuleEntry.COLUMN_NAME_FILED)); String ruleCheck = cursor.getString( @@ -169,7 +191,7 @@ public class LogUtil { if (senderName != null) rule += senderName.trim(); int senderImageId = SenderModel.getImageId(senderType); - LogVo logVo = new LogVo(itemid, itemfrom, content, simInfo, time, rule, senderImageId); + LogVo logVo = new LogVo(itemid, itemfrom, content, simInfo, time, rule, senderImageId, forwardStatus, forwardResponse); LogVos.add(logVo); } catch (Exception e) { Log.e(TAG, "getLog e:" + e.getMessage()); diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/SmsUtil.java b/app/src/main/java/com/idormy/sms/forwarder/utils/SmsUtil.java index fd344f50..6092396a 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/SmsUtil.java +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/SmsUtil.java @@ -22,7 +22,7 @@ public class SmsUtil { } } - public static void sendSms(int subId, String mobiles, String message) { + public static String sendSms(int subId, String mobiles, String message) { mobiles = mobiles.replace(";", ";"); Log.d(TAG, "subId = " + subId + ", mobiles = " + mobiles + ", message = " + message); @@ -35,8 +35,11 @@ public class SmsUtil { for (String text : divideContents) { smsManager.sendTextMessage(mobiles, null, text, sendPI, deliverPI); } + + return null; } catch (Exception e) { Log.e(TAG, e.getMessage()); + return e.getMessage(); } } diff --git a/app/src/main/res/drawable/ic_round_cancel.xml b/app/src/main/res/drawable/ic_round_cancel.xml new file mode 100644 index 00000000..70213c3e --- /dev/null +++ b/app/src/main/res/drawable/ic_round_cancel.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_round_check.xml b/app/src/main/res/drawable/ic_round_check.xml new file mode 100644 index 00000000..1175dac3 --- /dev/null +++ b/app/src/main/res/drawable/ic_round_check.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/layout/item_log.xml b/app/src/main/res/layout/item_log.xml index d029cca2..073ef9ea 100644 --- a/app/src/main/res/layout/item_log.xml +++ b/app/src/main/res/layout/item_log.xml @@ -3,13 +3,26 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - + android:layout_marginTop="10dp" + android:orientation="vertical"> + + + + + + diff --git a/app/version.gradle b/app/version.gradle index 75537fa5..c594a106 100644 --- a/app/version.gradle +++ b/app/version.gradle @@ -1,4 +1,4 @@ ext { - appVersionCode = 21 - appVersionName = "1.7.0" + appVersionCode = 22 + appVersionName = "1.7.1" } \ No newline at end of file diff --git a/build.gradle b/build.gradle index a9bb4765..04731a8e 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ buildscript { maven { url "https://jitpack.io" } } dependencies { - classpath 'com.android.tools.build:gradle:4.1.2' + classpath 'com.android.tools.build:gradle:4.1.3' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'com.chenenyu:img-optimizer:1.2.0' //图片压缩 }