From f34b404adbf0aadf1fa453b7d5cdeef01c223d0c Mon Sep 17 00:00:00 2001
From: pppscn <35696959@qq.com>
Date: Sun, 3 Apr 2022 17:17:40 +0800
Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=EF=BC=9A=E4=B8=BB=E5=8A=A8?=
=?UTF-8?q?=E8=BD=AE=E8=AF=A2=E8=BF=9C=E7=A8=8B=20SmsHub=20Api=EF=BC=88?=
=?UTF-8?q?=E4=BB=85=E4=BF=9D=E7=95=99=E6=9C=AC=E5=9C=B0=20HttpServer?=
=?UTF-8?q?=EF=BC=89?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 12 +-
README_en.md | 15 +-
.../idormy/sms/forwarder/MainActivity.java | 11 --
.../idormy/sms/forwarder/SettingActivity.java | 24 ---
.../sms/forwarder/model/vo/CloneInfoVo.java | 2 -
.../idormy/sms/forwarder/model/vo/ResVo.java | 1 -
.../sms/forwarder/model/vo/SmsHubVo.java | 2 -
.../sms/forwarder/receiver/BaseServlet.java | 149 ++++++++++++------
.../receiver/PhoneStateReceiver.java | 7 -
.../receiver/SmsBroadcastReceiver.java | 11 --
.../sender/BatteryReportCronTask.java | 7 -
.../sms/forwarder/sender/HttpServer.java | 46 +++---
.../sms/forwarder/sender/SmsHubApiTask.java | 105 ------------
.../sms/forwarder/service/BatteryService.java | 7 -
.../sms/forwarder/service/NotifyService.java | 7 -
.../sms/forwarder/utils/CloneUtils.java | 2 -
.../idormy/sms/forwarder/utils/Define.java | 2 -
.../com/idormy/sms/forwarder/utils/Lamda.java | 1 +
.../sms/forwarder/utils/SettingUtil.java | 16 --
.../forwarder/utils/SmsHubActionHandler.java | 144 -----------------
app/src/main/res/layout/activity_clone.xml | 1 -
app/src/main/res/layout/activity_setting.xml | 47 ------
app/src/main/res/values-en/strings.xml | 2 -
app/src/main/res/values/strings.xml | 2 -
24 files changed, 129 insertions(+), 494 deletions(-)
delete mode 100644 app/src/main/java/com/idormy/sms/forwarder/sender/SmsHubApiTask.java
delete mode 100644 app/src/main/java/com/idormy/sms/forwarder/utils/SmsHubActionHandler.java
diff --git a/README.md b/README.md
index 2d8ef2b2..e36dc9c2 100644
--- a/README.md
+++ b/README.md
@@ -88,20 +88,14 @@
- [x] 转发规则上支持配置正则替换内容
- [x] 转发到 Gotify发送通道(自主推送通知服务)
- [x] 被动接收本地 HttpServer
-- [x] 主动轮询远程 SmsHub Api
+- [x] 主动轮询远程 SmsHub Api(v2.5.0+已删除)
- [x] 适配暗夜模式
--------
### 应用截图:
-| 前台服务常驻状态栏 | 应用主界面 | 发送通道 | 转发规则 |
-| :--: | :--: | :--: | :--: |
-| ![前台服务常驻状态栏](pic/taskbar.jpg "前台服务常驻状态栏") | ![应用主界面](pic/main.jpg "应用主界面") | ![发送通道](pic/sender.png "发送通道") | ![转发规则](pic/rule.jpg "转发规则") |
-| 转发规则--短信转发 | 转发规则--通话记录 | 转发规则--APP通知 | 转发日志详情 |
-| ![短信转发](pic/rule_sms.jpg "短信转发") | ![通话转发](pic/rule_call.jpg "通话转发") | ![通知转发](pic/rule_app.jpg "通知转发") | ![转发日志详情](pic/maindetail.jpg "转发日志详情") |
-| 设置界面--总开关 | 设置界面--电量监控&保活措施 | 设置界面--个性设置 | 一键克隆(配置导出导入) |
-| ![设置界面--总开关](pic/setting_1.jpg "设置界面--总开关") | ![设置界面--电量监控&保活措施](pic/setting_2.jpg "设置界面--电量监控&保活措施") | ![设置界面--个性设置](pic/setting_3.jpg "设置界面--个性设置") | ![配置导出导入功能(一键克隆)](pic/clone.jpg "配置导出导入功能(一键克隆)") |
+| 前台服务常驻状态栏 | 应用主界面 | 发送通道 | 转发规则 | | :--: | :--: | :--: | :--: | | ![前台服务常驻状态栏](pic/taskbar.jpg "前台服务常驻状态栏") | ![应用主界面](pic/main.jpg "应用主界面") | ![发送通道](pic/sender.png "发送通道") | ![转发规则](pic/rule.jpg "转发规则") | | 转发规则--短信转发 | 转发规则--通话记录 | 转发规则--APP通知 | 转发日志详情 | | ![短信转发](pic/rule_sms.jpg "短信转发") | ![通话转发](pic/rule_call.jpg "通话转发") | ![通知转发](pic/rule_app.jpg "通知转发") | ![转发日志详情](pic/maindetail.jpg "转发日志详情") | | 设置界面--总开关 | 设置界面--电量监控&保活措施 | 设置界面--个性设置 | 一键克隆(配置导出导入) | | ![设置界面--总开关](pic/setting_1.jpg "设置界面--总开关") | ![设置界面--电量监控&保活措施](pic/setting_2.jpg "设置界面--电量监控&保活措施") | ![设置界面--个性设置](pic/setting_3.jpg "设置界面--个性设置") | ![配置导出导入功能(一键克隆)](pic/clone.jpg "配置导出导入功能(一键克隆)") |
更多截图参见 https://github.com/pppscn/SmsForwarder/wiki
@@ -127,7 +121,7 @@
+ https://github.com/alibaba/fastjson (Json解析)
+ https://github.com/getActivity/XXPermissions (权限请求框架)
+ https://github.com/Xcreen/RestSMS (被动接收本地API方案)
-+ https://github.com/juancrescente/SMSHub (主动轮询远程API方案)
++ ~~https://github.com/juancrescente/SMSHub (主动轮询远程API方案,v2.5.0+删除)~~
+ [](https://jb.gg/OpenSourceSupport) (License Certificate for JetBrains All Products Pack)
--------
diff --git a/README_en.md b/README_en.md
index e255017e..beea516e 100644
--- a/README_en.md
+++ b/README_en.md
@@ -1,7 +1,7 @@
-
![SmsForwarder](pic/SmsForwarder.png)
# SmsForwarder
+
[中文版](README.md)
[![GitHub release](https://img.shields.io/github/release/pppscn/SmsForwarder.svg)](https://github.com/pppscn/SmsForwarder/releases) [![GitHub stars](https://img.shields.io/github/stars/pppscn/SmsForwarder)](https://github.com/pppscn/SmsForwarder/stargazers) [![GitHub forks](https://img.shields.io/github/forks/pppscn/SmsForwarder)](https://github.com/pppscn/SmsForwarder/network/members) [![GitHub issues](https://img.shields.io/github/issues/pppscn/SmsForwarder)](https://github.com/pppscn/SmsForwarder/issues) [![GitHub license](https://img.shields.io/github/license/pppscn/SmsForwarder)](https://github.com/pppscn/SmsForwarder/blob/main/LICENSE)
@@ -90,19 +90,14 @@ Benefit by simplicity:
- [x] Support for variables in regular expression of forwarding rules;
- [x] 转发到 Gotify发送通道(自主推送通知服务)
- [x] 被动接收本地 HttpServer
-- [x] 主动轮询远程 SmsHub Api
+- [x] 主动轮询远程 SmsHub Api(v2.5.0+已删除)
+- [x] 适配暗夜模式
--------
### Screenshots :
-| 前台服务常驻状态栏 | 应用主界面 | 发送通道 | 转发规则 |
-| :--: | :--: | :--: | :--: |
-| ![前台服务常驻状态栏](pic/taskbar.jpg "前台服务常驻状态栏") | ![应用主界面](pic/main.jpg "应用主界面") | ![发送通道](pic/sender.png "发送通道") | ![转发规则](pic/rule.jpg "转发规则") |
-| 转发规则--短信转发 | 转发规则--通话记录 | 转发规则--APP通知 | 转发日志详情 |
-| ![短信转发](pic/rule_sms.jpg "短信转发") | ![通话转发](pic/rule_call.jpg "通话转发") | ![通知转发](pic/rule_app.jpg "通知转发") | ![转发日志详情](pic/maindetail.jpg "转发日志详情") |
-| 设置界面--总开关 | 设置界面--电量监控&保活措施 | 设置界面--个性设置 | 一键克隆(配置导出导入) |
-| ![设置界面--总开关](pic/setting_1.jpg "设置界面--总开关") | ![设置界面--电量监控&保活措施](pic/setting_2.jpg "设置界面--电量监控&保活措施") | ![设置界面--个性设置](pic/setting_3.jpg "设置界面--个性设置") | ![配置导出导入功能(一键克隆)](pic/clone.jpg "配置导出导入功能(一键克隆)") |
+| 前台服务常驻状态栏 | 应用主界面 | 发送通道 | 转发规则 | | :--: | :--: | :--: | :--: | | ![前台服务常驻状态栏](pic/taskbar.jpg "前台服务常驻状态栏") | ![应用主界面](pic/main.jpg "应用主界面") | ![发送通道](pic/sender.png "发送通道") | ![转发规则](pic/rule.jpg "转发规则") | | 转发规则--短信转发 | 转发规则--通话记录 | 转发规则--APP通知 | 转发日志详情 | | ![短信转发](pic/rule_sms.jpg "短信转发") | ![通话转发](pic/rule_call.jpg "通话转发") | ![通知转发](pic/rule_app.jpg "通知转发") | ![转发日志详情](pic/maindetail.jpg "转发日志详情") | | 设置界面--总开关 | 设置界面--电量监控&保活措施 | 设置界面--个性设置 | 一键克隆(配置导出导入) | | ![设置界面--总开关](pic/setting_1.jpg "设置界面--总开关") | ![设置界面--电量监控&保活措施](pic/setting_2.jpg "设置界面--电量监控&保活措施") | ![设置界面--个性设置](pic/setting_3.jpg "设置界面--个性设置") | ![配置导出导入功能(一键克隆)](pic/clone.jpg "配置导出导入功能(一键克隆)") |
更多截图参见 https://github.com/pppscn/SmsForwarder/wiki
@@ -128,7 +123,7 @@ Benefit by simplicity:
+ https://github.com/alibaba/fastjson (json parsing)
+ https://github.com/getActivity/XXPermissions (permission requiring)
+ https://github.com/Xcreen/RestSMS(被动接收本地API方案)
-+ https://github.com/juancrescente/SMSHub(主动轮询远程API方案)
++ ~~https://github.com/juancrescente/SMSHub(主动轮询远程API方案,v2.5.0+删除)~~
+ [](https://jb.gg/OpenSourceSupport) (License Certificate for JetBrains All Products Pack)
--------
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 0352b3f2..90d35ae8 100644
--- a/app/src/main/java/com/idormy/sms/forwarder/MainActivity.java
+++ b/app/src/main/java/com/idormy/sms/forwarder/MainActivity.java
@@ -36,7 +36,6 @@ import com.idormy.sms.forwarder.sender.BatteryReportCronTask;
import com.idormy.sms.forwarder.sender.HttpServer;
import com.idormy.sms.forwarder.sender.SendUtil;
import com.idormy.sms.forwarder.sender.SenderUtil;
-import com.idormy.sms.forwarder.sender.SmsHubApiTask;
import com.idormy.sms.forwarder.service.BatteryService;
import com.idormy.sms.forwarder.service.FrontService;
import com.idormy.sms.forwarder.service.MusicService;
@@ -139,16 +138,6 @@ public class MainActivity extends AppCompatActivity implements RefreshListView.I
}
}
- //启用SmsHubApiTask
- if (SettingUtil.getSwitchEnableSmsHubApi()) {
- SmsHubApiTask.init(this);
- try {
- SmsHubApiTask.updateTimer();
- } catch (Exception e) {
- Log.e(TAG, "SmsHubApiTask:", e);
- }
- }
-
//电池状态定时推送
if (SettingUtil.getSwitchEnableBatteryCron()) {
try {
diff --git a/app/src/main/java/com/idormy/sms/forwarder/SettingActivity.java b/app/src/main/java/com/idormy/sms/forwarder/SettingActivity.java
index e314bb1f..20a73bef 100644
--- a/app/src/main/java/com/idormy/sms/forwarder/SettingActivity.java
+++ b/app/src/main/java/com/idormy/sms/forwarder/SettingActivity.java
@@ -39,7 +39,6 @@ import com.idormy.sms.forwarder.receiver.RebootBroadcastReceiver;
import com.idormy.sms.forwarder.sender.BatteryReportCronTask;
import com.idormy.sms.forwarder.sender.HttpServer;
import com.idormy.sms.forwarder.sender.SenderUtil;
-import com.idormy.sms.forwarder.sender.SmsHubApiTask;
import com.idormy.sms.forwarder.service.MusicService;
import com.idormy.sms.forwarder.utils.CommonUtil;
import com.idormy.sms.forwarder.utils.DbHelper;
@@ -50,7 +49,6 @@ import com.idormy.sms.forwarder.utils.LogUtil;
import com.idormy.sms.forwarder.utils.OnePixelManager;
import com.idormy.sms.forwarder.utils.RuleUtil;
import com.idormy.sms.forwarder.utils.SettingUtil;
-import com.idormy.sms.forwarder.view.ClearEditText;
import com.idormy.sms.forwarder.view.StepBar;
import java.lang.reflect.Method;
@@ -97,8 +95,6 @@ public class SettingActivity extends AppCompatActivity {
//HttpServer
switchEnableHttpServer(findViewById(R.id.switch_enable_http_server));
- //SmsHubApiTask
- editSmsHubConfig(findViewById(R.id.switch_enable_sms_hub), findViewById(R.id.editText_text_sms_hub_url));
//监听电池状态变化
switchBatteryReceiver(findViewById(R.id.switch_battery_receiver));
@@ -352,26 +348,6 @@ public class SettingActivity extends AppCompatActivity {
}
}
- //SmsHubApiTask
- @SuppressLint("UseSwitchCompatOrMaterialCode")
- private void editSmsHubConfig(Switch switch_enable_send_sms, ClearEditText editText_text_send_sms) {
- switch_enable_send_sms.setChecked(SettingUtil.getSwitchEnableSmsHubApi());
- switch_enable_send_sms.setOnCheckedChangeListener((buttonView, isChecked) -> {
- String webServer = editText_text_send_sms.getText().trim();
- if (isChecked && !CommonUtil.checkUrl(webServer, false)) {
- HttpUtil.Toast(TAG, getString(R.string.invalid_webserver));
- switch_enable_send_sms.setChecked(false);
- return;
- }
- SettingUtil.switchEnableSmsHubApi(isChecked);
- Log.d(TAG, "switchEnableSendApi:" + isChecked);
- SmsHubApiTask.updateTimer();
- });
-
- editText_text_send_sms.setText(SettingUtil.getSmsHubApiUrl());
- editText_text_send_sms.setOnEditInputListener(content -> SettingUtil.smsHubApiUrl(content.trim()));
- }
-
//HttpServer
@SuppressLint("UseSwitchCompatOrMaterialCode")
private void switchEnableHttpServer(Switch switch_enable_http_server) {
diff --git a/app/src/main/java/com/idormy/sms/forwarder/model/vo/CloneInfoVo.java b/app/src/main/java/com/idormy/sms/forwarder/model/vo/CloneInfoVo.java
index 52ed87cd..960bbc0b 100644
--- a/app/src/main/java/com/idormy/sms/forwarder/model/vo/CloneInfoVo.java
+++ b/app/src/main/java/com/idormy/sms/forwarder/model/vo/CloneInfoVo.java
@@ -24,7 +24,6 @@ public class CloneInfoVo implements Serializable {
private boolean callType3;
private boolean enableAppNotify;
private boolean cancelAppNotify;
- private String smsHubApiUrl;
private int batteryLevelAlarmMin;
private int batteryLevelAlarmMax;
private boolean batteryLevelAlarmOnce;
@@ -48,7 +47,6 @@ public class CloneInfoVo implements Serializable {
", callType3=" + callType3 +
", enableAppNotify=" + enableAppNotify +
", cancelAppNotify=" + cancelAppNotify +
- ", smsHubApiUrl=" + smsHubApiUrl +
", batteryLevelAlarmMin=" + batteryLevelAlarmMin +
", batteryLevelAlarmMax=" + batteryLevelAlarmMax +
", batteryLevelAlarmOnce=" + batteryLevelAlarmOnce +
diff --git a/app/src/main/java/com/idormy/sms/forwarder/model/vo/ResVo.java b/app/src/main/java/com/idormy/sms/forwarder/model/vo/ResVo.java
index 3c32bdf9..8e3462a9 100644
--- a/app/src/main/java/com/idormy/sms/forwarder/model/vo/ResVo.java
+++ b/app/src/main/java/com/idormy/sms/forwarder/model/vo/ResVo.java
@@ -10,7 +10,6 @@ public class ResVo {
private int code;
private String msg;
private String auth;
- private SmsHubVo heartbeat;
private T data;
public ResVo setSuessces(T data) {
diff --git a/app/src/main/java/com/idormy/sms/forwarder/model/vo/SmsHubVo.java b/app/src/main/java/com/idormy/sms/forwarder/model/vo/SmsHubVo.java
index a5bb56b4..8939da38 100644
--- a/app/src/main/java/com/idormy/sms/forwarder/model/vo/SmsHubVo.java
+++ b/app/src/main/java/com/idormy/sms/forwarder/model/vo/SmsHubVo.java
@@ -3,7 +3,6 @@ package com.idormy.sms.forwarder.model.vo;
import androidx.annotation.NonNull;
import com.alibaba.fastjson.JSON;
-import com.idormy.sms.forwarder.sender.SmsHubApiTask;
import com.idormy.sms.forwarder.utils.PhoneUtils;
import com.idormy.sms.forwarder.utils.SettingUtil;
import com.idormy.sms.forwarder.utils.SimUtil;
@@ -87,7 +86,6 @@ public class SmsHubVo implements Serializable {
deviInfoMap.put("imei", PhoneUtils.getIMEI());
deviInfoMap.put("SDKVersion", PhoneUtils.getSDKVersion() + "");
deviInfoMap.put("Version", SettingUtil.getVersionName());
- deviInfoMap.put("heartbeat", SmsHubApiTask.DELAY_SECONDS + "");
cache.put(key, deviInfoMap);
return deviInfoMap;
}
diff --git a/app/src/main/java/com/idormy/sms/forwarder/receiver/BaseServlet.java b/app/src/main/java/com/idormy/sms/forwarder/receiver/BaseServlet.java
index c19d77bf..3ee38b06 100644
--- a/app/src/main/java/com/idormy/sms/forwarder/receiver/BaseServlet.java
+++ b/app/src/main/java/com/idormy/sms/forwarder/receiver/BaseServlet.java
@@ -7,11 +7,15 @@ import android.util.Log;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.alibaba.fastjson.util.IOUtils;
+import com.idormy.sms.forwarder.model.LogModel;
import com.idormy.sms.forwarder.model.vo.ResVo;
import com.idormy.sms.forwarder.model.vo.SmsHubVo;
import com.idormy.sms.forwarder.utils.CloneUtils;
+import com.idormy.sms.forwarder.utils.HttpUtil;
+import com.idormy.sms.forwarder.utils.LogUtil;
import com.idormy.sms.forwarder.utils.SettingUtil;
-import com.idormy.sms.forwarder.utils.SmsHubActionHandler;
+import com.idormy.sms.forwarder.utils.SimUtil;
+import com.idormy.sms.forwarder.utils.SmsUtil;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
@@ -38,47 +42,21 @@ import javax.servlet.http.HttpServletResponse;
@MultipartConfig
public class BaseServlet extends HttpServlet {
- public static final int BUFFER_SIZE = 1 << 12;
- public static final String CLONE_PATH = "/clone";
- public static final String SMSHUB_PATH = "/send_api";
- private static final long serialVersionUID = 1L;
private static final String TAG = "BaseServlet";
- public static final SmsHubActionHandler.SmsHubMode smsHubMode = SmsHubActionHandler.SmsHubMode.server;
-
- public BaseServlet(String path, Context context) {
- this.path = path;
- this.context = context;
- SettingUtil.init(context);
- }
+ public static final int BUFFER_SIZE = 1 << 12;
+ private static final long serialVersionUID = 1L;
+ public static final long RULE_ID = -999L;
+ public static final String SMSHUB_PATH = "/send_api";
+ public static final String CLONE_PATH = "/clone";
private final String path;
@SuppressLint("StaticFieldLeak")
private final Context context;
- public static void addServlet(Server jettyServer, Context context) {
- ServletContextHandler contextHandler = new ServletContextHandler();
- addHolder(contextHandler, new BaseServlet(BaseServlet.CLONE_PATH, context));
- addHolder(contextHandler, new BaseServlet(BaseServlet.SMSHUB_PATH, context));
- // addholder(contextHandler, new BaseServlet("/", context));
- jettyServer.setHandler(contextHandler);
- }
-
- public static String read(Reader reader) throws IOException {
- char[] buffer = new char[BUFFER_SIZE];
- int size;
- StringBuilder sb = new StringBuilder();
- while ((size = reader.read(buffer)) != -1) {
- char[] chars = new char[size];
- System.arraycopy(buffer, 0, chars, 0, size);
- sb.append(chars);
- }
- return sb.toString();
- }
-
- private static void addHolder(ServletContextHandler servletContextHandler, BaseServlet baseServlet) {
- ServletHolder servletHolder = new ServletHolder(baseServlet);
- servletHolder.getRegistration().setMultipartConfig(new MultipartConfigElement(baseServlet.getContext().getCacheDir().getAbsolutePath() + File.pathSeparator + "jettyServer"));
- servletContextHandler.addServlet(servletHolder, baseServlet.getPath());
+ public BaseServlet(String path, Context context) {
+ this.path = path;
+ this.context = context;
+ SettingUtil.init(context);
}
public Context getContext() {
@@ -89,6 +67,14 @@ public class BaseServlet extends HttpServlet {
return path;
}
+ public static void addServlet(Server jettyServer, Context context) {
+ ServletContextHandler contextHandler = new ServletContextHandler();
+ addHolder(contextHandler, new BaseServlet(BaseServlet.CLONE_PATH, context));
+ addHolder(contextHandler, new BaseServlet(BaseServlet.SMSHUB_PATH, context));
+ // addholder(contextHandler, new BaseServlet("/", context));
+ jettyServer.setHandler(contextHandler);
+ }
+
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
String msg = "HTTP method POST is not supported by this URL";
@@ -123,18 +109,16 @@ public class BaseServlet extends HttpServlet {
try {
String read = read(reader);
Log.i(TAG, "Request message:" + read);
- SmsHubVo smsHubVo = SmsHubVo.heartbeatInstance(SmsHubActionHandler.getData(smsHubMode));
ResVo> result = ResVo.suessces(null);
if (StringUtil.isNotBlank(read)) {
ResVo> obj = JSON.parseObject(read, new TypeReference>>() {
}.getType());
List data = obj.getData();
for (SmsHubVo vo : data) {
- SmsHubActionHandler.handle(TAG, vo);
+ sendSms(TAG, vo);
}
result.setData(data);
}
- result.setHeartbeat(smsHubVo);
resp.setContentType("application/json;charset=utf-8");
StringBuilder sb = new StringBuilder();
int i = 0;
@@ -158,14 +142,6 @@ public class BaseServlet extends HttpServlet {
}
}
- private void printErrMsg(HttpServletResponse resp, PrintWriter writer, Exception e) {
- String text = "Internal server error: " + e.getMessage();
- Log.e(TAG, text);
- resp.setStatus(HttpServletResponse.SC_OK);
- resp.setContentType("application/json;charset=utf-8");
- writer.println(JSON.toJSONString(ResVo.error(text)));
- }
-
//一键克隆——查询接口
private void clone_api(HttpServletRequest req, HttpServletResponse resp) throws IOException {
resp.setCharacterEncoding("utf-8");
@@ -202,4 +178,83 @@ public class BaseServlet extends HttpServlet {
}
}
+ //短信列表api
+
+ //联系人api
+
+ //查询通话记录api
+
+ //查询电量api
+
+ //规则列表api(增删改查)
+
+ //发送通道api(增删改查)
+
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+ private static String read(Reader reader) throws IOException {
+ char[] buffer = new char[BUFFER_SIZE];
+ int size;
+ StringBuilder sb = new StringBuilder();
+ while ((size = reader.read(buffer)) != -1) {
+ char[] chars = new char[size];
+ System.arraycopy(buffer, 0, chars, 0, size);
+ sb.append(chars);
+ }
+ return sb.toString();
+ }
+
+ private static void addHolder(ServletContextHandler servletContextHandler, BaseServlet baseServlet) {
+ ServletHolder servletHolder = new ServletHolder(baseServlet);
+ servletHolder.getRegistration().setMultipartConfig(new MultipartConfigElement(baseServlet.getContext().getCacheDir().getAbsolutePath() + File.pathSeparator + "jettyServer"));
+ servletContextHandler.addServlet(servletHolder, baseServlet.getPath());
+ }
+
+ private void printErrMsg(HttpServletResponse resp, PrintWriter writer, Exception e) {
+ String text = "Internal server error: " + e.getMessage();
+ Log.e(TAG, text);
+ resp.setStatus(HttpServletResponse.SC_OK);
+ resp.setContentType("application/json;charset=utf-8");
+ writer.println(JSON.toJSONString(ResVo.error(text)));
+ }
+
+ private static void sendSms(String tag, SmsHubVo vo) {
+ boolean failure = true;
+ String msg = "";
+ Long logId = null;
+ try {
+ if (SmsHubVo.Action.send.code().equals(vo.getAction())) {
+ vo.setType(SmsHubVo.Type.sms.code());
+ if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP_MR1) {
+ int subscriptionIdBySimId = SimUtil.getSubscriptionIdBySimId(Integer.parseInt(vo.getChannel()) - 1);
+ msg = SmsUtil.sendSms(subscriptionIdBySimId, vo.getTarget(), vo.getContent());
+ String simInfo = "SIM" + (subscriptionIdBySimId + 1);
+ vo.setChannel(simInfo);
+ logId = LogUtil.addLog(new LogModel(vo.getType(), vo.getTarget(), vo.getContent(), simInfo, RULE_ID));
+ if (msg == null) {
+ failure = false;
+ HttpUtil.Toast(tag, "短信发送成功");
+ Log.i(tag, "短信发送成功");
+ vo.setAction(SmsHubVo.Action.suessces.code());
+ LogUtil.updateLog(logId, 2, SmsHubVo.Action.suessces.code());
+ }
+ } else {
+ msg = "api<22";
+ }
+ }
+ } catch (Exception e) {
+ msg += e.getMessage();
+ e.printStackTrace();
+ }
+ if (failure) {
+ msg = "短信发送失败:" + msg;
+ HttpUtil.Toast(tag, msg);
+ Log.i(tag, msg);
+ vo.setAction(SmsHubVo.Action.failure.code());
+ vo.setErrMsg(msg);
+ if (logId != null) {
+ LogUtil.updateLog(logId, 0, msg);
+ }
+ }
+ }
}
diff --git a/app/src/main/java/com/idormy/sms/forwarder/receiver/PhoneStateReceiver.java b/app/src/main/java/com/idormy/sms/forwarder/receiver/PhoneStateReceiver.java
index 4dc4c668..93199a77 100644
--- a/app/src/main/java/com/idormy/sms/forwarder/receiver/PhoneStateReceiver.java
+++ b/app/src/main/java/com/idormy/sms/forwarder/receiver/PhoneStateReceiver.java
@@ -10,7 +10,6 @@ import android.util.Log;
import com.idormy.sms.forwarder.R;
import com.idormy.sms.forwarder.model.CallInfo;
import com.idormy.sms.forwarder.model.PhoneBookEntity;
-import com.idormy.sms.forwarder.model.vo.SmsHubVo;
import com.idormy.sms.forwarder.model.vo.SmsVo;
import com.idormy.sms.forwarder.sender.SendUtil;
import com.idormy.sms.forwarder.utils.CommonUtil;
@@ -18,7 +17,6 @@ import com.idormy.sms.forwarder.utils.ContactHelper;
import com.idormy.sms.forwarder.utils.PhoneUtils;
import com.idormy.sms.forwarder.utils.SettingUtil;
import com.idormy.sms.forwarder.utils.SimUtil;
-import com.idormy.sms.forwarder.utils.SmsHubActionHandler;
import java.text.SimpleDateFormat;
import java.util.Date;
@@ -130,11 +128,6 @@ public class PhoneStateReceiver extends BroadcastReceiver {
SmsVo smsVo = new SmsVo(phoneNumber, getTypeText(context, type, name, viaNumber), new Date(), simInfo);
Log.d(TAG, "send_msg" + smsVo);
SendUtil.send_msg(context, smsVo, simId, "call");
-
- //SmsHubApi
- if (SettingUtil.getSwitchEnableSmsHubApi()) {
- SmsHubActionHandler.putData(new SmsHubVo(SmsHubVo.Type.phone, simId, getTypeText(context, type, name, viaNumber), phoneNumber));
- }
}
//获取通话类型:1.呼入 2.呼出 3.未接
diff --git a/app/src/main/java/com/idormy/sms/forwarder/receiver/SmsBroadcastReceiver.java b/app/src/main/java/com/idormy/sms/forwarder/receiver/SmsBroadcastReceiver.java
index 39cb42e3..aff6b406 100644
--- a/app/src/main/java/com/idormy/sms/forwarder/receiver/SmsBroadcastReceiver.java
+++ b/app/src/main/java/com/idormy/sms/forwarder/receiver/SmsBroadcastReceiver.java
@@ -10,12 +10,10 @@ import android.util.Log;
import androidx.annotation.RequiresApi;
-import com.idormy.sms.forwarder.model.vo.SmsHubVo;
import com.idormy.sms.forwarder.model.vo.SmsVo;
import com.idormy.sms.forwarder.sender.SendUtil;
import com.idormy.sms.forwarder.utils.SettingUtil;
import com.idormy.sms.forwarder.utils.SimUtil;
-import com.idormy.sms.forwarder.utils.SmsHubActionHandler;
import java.util.ArrayList;
import java.util.Date;
@@ -93,15 +91,6 @@ public class SmsBroadcastReceiver extends BroadcastReceiver {
Log.d(TAG, "SMS: " + smsVoList);
SendUtil.send_msg_list(context, smsVoList, simId, "sms");
-
- //SmsHubApi
- if (SettingUtil.getSwitchEnableSmsHubApi()) {
- List smsHubVos = new ArrayList<>();
- for (String mobile : mobileToContent.keySet()) {
- smsHubVos.add(new SmsHubVo(SmsHubVo.Type.sms, simId, mobileToContent.get(mobile), mobile));
- }
- SmsHubActionHandler.putData(smsHubVos.toArray(new SmsHubVo[0]));
- }
}
} catch (Throwable throwable) {
diff --git a/app/src/main/java/com/idormy/sms/forwarder/sender/BatteryReportCronTask.java b/app/src/main/java/com/idormy/sms/forwarder/sender/BatteryReportCronTask.java
index 5b43510d..64a1bef2 100644
--- a/app/src/main/java/com/idormy/sms/forwarder/sender/BatteryReportCronTask.java
+++ b/app/src/main/java/com/idormy/sms/forwarder/sender/BatteryReportCronTask.java
@@ -6,11 +6,9 @@ import android.content.IntentFilter;
import android.util.Log;
import com.idormy.sms.forwarder.MyApplication;
-import com.idormy.sms.forwarder.model.vo.SmsHubVo;
import com.idormy.sms.forwarder.model.vo.SmsVo;
import com.idormy.sms.forwarder.utils.BatteryUtils;
import com.idormy.sms.forwarder.utils.SettingUtil;
-import com.idormy.sms.forwarder.utils.SmsHubActionHandler;
import java.util.Calendar;
import java.util.Date;
@@ -91,11 +89,6 @@ public class BatteryReportCronTask {
try {
SmsVo smsVo = new SmsVo("88888888", msg, new Date(), "电池状态定时推送");
SendUtil.send_msg(context, smsVo, 1, "app");
-
- //SmsHubApi
- if (SettingUtil.getSwitchEnableSmsHubApi()) {
- SmsHubActionHandler.putData(new SmsHubVo(SmsHubVo.Type.phone, null, msg, "电池状态定时推送"));
- }
} catch (Exception e) {
Log.e(TAG, "sendMessage e:" + e.getMessage());
}
diff --git a/app/src/main/java/com/idormy/sms/forwarder/sender/HttpServer.java b/app/src/main/java/com/idormy/sms/forwarder/sender/HttpServer.java
index 5fb67f50..44ae0410 100644
--- a/app/src/main/java/com/idormy/sms/forwarder/sender/HttpServer.java
+++ b/app/src/main/java/com/idormy/sms/forwarder/sender/HttpServer.java
@@ -11,11 +11,9 @@ import com.idormy.sms.forwarder.receiver.BaseServlet;
import com.idormy.sms.forwarder.utils.Define;
import com.idormy.sms.forwarder.utils.NetUtil;
import com.idormy.sms.forwarder.utils.SettingUtil;
-import com.idormy.sms.forwarder.utils.SmsHubActionHandler;
import org.eclipse.jetty.server.Server;
-
public class HttpServer {
private static Boolean hasInit = false;
private static Server jettyServer;
@@ -23,7 +21,6 @@ public class HttpServer {
private static Context context;
private static long ts = 0L;
-
@SuppressLint("HandlerLeak")
public static void init(Context context) {
//noinspection SynchronizeOnNonFinalField
@@ -32,7 +29,6 @@ public class HttpServer {
hasInit = true;
HttpServer.context = context;
- SmsHubActionHandler.init(context);
jettyServer = new Server(Define.HTTP_SERVER_PORT);
BaseServlet.addServlet(jettyServer, context);
}
@@ -49,6 +45,17 @@ public class HttpServer {
return false;
}
+ /**
+ * Checks if Jetty is stopping
+ * boolean - True when server is stopping
+ */
+ private synchronized static Boolean asStopp() {
+ if (jettyServer != null) {
+ return !(jettyServer.isRunning() || jettyServer.isStopping());
+ }
+ return true;
+ }
+
public synchronized static boolean update() {
//非WiFi网络下不可启用
if (NetUtil.NETWORK_WIFI != NetUtil.getNetWorkStatus()) {
@@ -76,42 +83,25 @@ public class HttpServer {
return true;
}
- /**
- * Checks if Jetty is stopping
- * boolean - True when server is stopping
- */
- private synchronized static Boolean asStopp() {
- if (jettyServer != null) {
- return !(jettyServer.isRunning() || jettyServer.isStopping());
- } else {
- return true;
- }
- }
-
private static void start() {
stop();
Log.i("HttpServer", "start");
- //new Thread(() -> {
try {
- //Start Jetty
jettyServer.start();
- //jettyServer.join();
} catch (Exception e) {
e.printStackTrace();
}
- //}).start();
}
private static void stop() {
- if (Boolean.FALSE.equals(asStopp())) {
- try {
- if (jettyServer != null) {
- jettyServer.stop();
- //jettyServer = new Server(port);
- }
- } catch (Exception e) {
- e.printStackTrace();
+ if (asStopp()) return;
+
+ try {
+ if (jettyServer != null) {
+ jettyServer.stop();
}
+ } catch (Exception e) {
+ e.printStackTrace();
}
}
diff --git a/app/src/main/java/com/idormy/sms/forwarder/sender/SmsHubApiTask.java b/app/src/main/java/com/idormy/sms/forwarder/sender/SmsHubApiTask.java
deleted file mode 100644
index 568142bb..00000000
--- a/app/src/main/java/com/idormy/sms/forwarder/sender/SmsHubApiTask.java
+++ /dev/null
@@ -1,105 +0,0 @@
-package com.idormy.sms.forwarder.sender;
-
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.util.Log;
-
-import com.alibaba.fastjson.JSON;
-import com.idormy.sms.forwarder.model.vo.SmsHubVo;
-import com.idormy.sms.forwarder.utils.HttpUtil;
-import com.idormy.sms.forwarder.utils.SettingUtil;
-import com.idormy.sms.forwarder.utils.SmsHubActionHandler;
-
-import java.util.List;
-import java.util.Objects;
-import java.util.Timer;
-import java.util.TimerTask;
-import java.util.concurrent.atomic.AtomicBoolean;
-
-
-/**
- * 主动发送短信轮询任务
- *
- * @author xxc
- * 2022/1/10 9:53
- */
-@SuppressWarnings("CodeBlock2Expr")
-public class SmsHubApiTask extends TimerTask {
- private static Boolean hasInit = false;
- public static final long DELAY_SECONDS = 30;
- private static final String TAG = "SmsHubApiTask";
- private static Timer sendApiTimer;
- @SuppressLint("StaticFieldLeak")
- private static Context context;
- private static final SmsHubActionHandler.SmsHubMode smsHubMode = SmsHubActionHandler.SmsHubMode.client;
-
-
- @SuppressLint("HandlerLeak")
- public static void init(Context context) {
- //noinspection SynchronizeOnNonFinalField
- synchronized (hasInit) {
- if (hasInit) return;
-
- hasInit = true;
- SmsHubApiTask.context = context;
- SmsHubActionHandler.init(SmsHubApiTask.context);
- }
- }
-
- @Override
- public void run() {
- List data = SmsHubActionHandler.getData(smsHubMode);
- SmsHubVo smsHubVo = SmsHubVo.heartbeatInstance(data);
- String url = SettingUtil.getSmsHubApiUrl();
- boolean asRetry = data != null && data.size() > 0;
- AtomicBoolean isSusess = new AtomicBoolean(false);
- Runnable runnable = () -> {
- HttpUtil.asyncPostJson(TAG, url, smsHubVo, response -> {
- //HttpUtil.Toast(TAG, "Response:" + response.code() + "," + responseStr);
- if (response.code() == 200) {
- isSusess.set(true);
- String responseStr = Objects.requireNonNull(response.body()).string();
- List vos = JSON.parseArray(responseStr, SmsHubVo.class);
- for (SmsHubVo vo : vos) {
- SmsHubActionHandler.handle(TAG, vo);
- }
- SmsHubActionHandler.putData(smsHubMode, vos.toArray(new SmsHubVo[0]));
- }
- }, null, asRetry);
- };
- if (asRetry) {
- new Thread(runnable).start();
- } else {
- runnable.run();
- }
- }
-
-
- public static void updateTimer() {
- cancelTimer();
- if (SettingUtil.getSwitchEnableSmsHubApi()) {
- SmsHubVo.getDevInfoMap(true);
- startTimer();
- } else {
- Log.d(TAG, "Cancel SmsHubApiTaskTimer");
- HttpUtil.Toast(TAG, "Cancel SmsHubApiTaskTimer");
- }
- }
-
- private static void cancelTimer() {
- if (sendApiTimer != null) {
- sendApiTimer.cancel();
- sendApiTimer = null;
- }
- }
-
- private static void startTimer() {
- Log.d(TAG, "Start SmsHubApiTimer");
- if (SettingUtil.getSwitchEnableSmsHubApi()) {
- long seconds = SmsHubApiTask.DELAY_SECONDS;
- Log.d(TAG, "SmsHubApiTimer started " + seconds);
- sendApiTimer = new Timer("SmsHubApiTimer", true);
- sendApiTimer.schedule(new SmsHubApiTask(), 3000, seconds * 1000);
- }
- }
-}
diff --git a/app/src/main/java/com/idormy/sms/forwarder/service/BatteryService.java b/app/src/main/java/com/idormy/sms/forwarder/service/BatteryService.java
index 70c7c264..6521550c 100644
--- a/app/src/main/java/com/idormy/sms/forwarder/service/BatteryService.java
+++ b/app/src/main/java/com/idormy/sms/forwarder/service/BatteryService.java
@@ -10,12 +10,10 @@ import android.os.IBinder;
import android.util.Log;
import com.idormy.sms.forwarder.MyApplication;
-import com.idormy.sms.forwarder.model.vo.SmsHubVo;
import com.idormy.sms.forwarder.model.vo.SmsVo;
import com.idormy.sms.forwarder.sender.SendUtil;
import com.idormy.sms.forwarder.utils.BatteryUtils;
import com.idormy.sms.forwarder.utils.SettingUtil;
-import com.idormy.sms.forwarder.utils.SmsHubActionHandler;
import java.util.Date;
@@ -119,11 +117,6 @@ public class BatteryService extends Service {
SmsVo smsVo = new SmsVo("88888888", msg, new Date(), "电池状态监听");
Log.d(TAG, "send_msg" + smsVo);
SendUtil.send_msg(context, smsVo, 1, "app");
-
- //SmsHubApi
- if (SettingUtil.getSwitchEnableSmsHubApi()) {
- SmsHubActionHandler.putData(new SmsHubVo(SmsHubVo.Type.phone, null, msg, "电池状态监听"));
- }
} catch (Exception e) {
Log.e(TAG, "getLog e:" + e.getMessage());
}
diff --git a/app/src/main/java/com/idormy/sms/forwarder/service/NotifyService.java b/app/src/main/java/com/idormy/sms/forwarder/service/NotifyService.java
index 70d5ca4d..7102cbb5 100644
--- a/app/src/main/java/com/idormy/sms/forwarder/service/NotifyService.java
+++ b/app/src/main/java/com/idormy/sms/forwarder/service/NotifyService.java
@@ -9,12 +9,10 @@ import android.util.Log;
import androidx.annotation.RequiresApi;
import com.idormy.sms.forwarder.MyApplication;
-import com.idormy.sms.forwarder.model.vo.SmsHubVo;
import com.idormy.sms.forwarder.model.vo.SmsVo;
import com.idormy.sms.forwarder.sender.SendUtil;
import com.idormy.sms.forwarder.utils.CommonUtil;
import com.idormy.sms.forwarder.utils.SettingUtil;
-import com.idormy.sms.forwarder.utils.SmsHubActionHandler;
import java.text.SimpleDateFormat;
import java.util.Date;
@@ -94,11 +92,6 @@ public class NotifyService extends NotificationListenerService {
SmsVo smsVo = new SmsVo(packageName, text, new Date(), title);
Log.d(TAG, "send_msg" + smsVo);
SendUtil.send_msg(this, smsVo, 1, "app");
-
- //SmsHubApi
- if (SettingUtil.getSwitchEnableSmsHubApi()) {
- SmsHubActionHandler.putData(new SmsHubVo(SmsHubVo.Type.app, null, text, packageName));
- }
} catch (Exception e) {
Log.e(TAG, "onNotificationPosted:", e);
}
diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/CloneUtils.java b/app/src/main/java/com/idormy/sms/forwarder/utils/CloneUtils.java
index 19039cf3..e9d1eb68 100644
--- a/app/src/main/java/com/idormy/sms/forwarder/utils/CloneUtils.java
+++ b/app/src/main/java/com/idormy/sms/forwarder/utils/CloneUtils.java
@@ -26,7 +26,6 @@ public class CloneUtils {
cloneInfo.setCallType3(SettingUtil.getSwitchCallType3());
cloneInfo.setEnableAppNotify(SettingUtil.getSwitchEnableAppNotify());
cloneInfo.setCancelAppNotify(SettingUtil.getSwitchCancelAppNotify());
- cloneInfo.setSmsHubApiUrl(SettingUtil.getSmsHubApiUrl());
cloneInfo.setBatteryLevelAlarmMin(SettingUtil.getBatteryLevelAlarmMin());
cloneInfo.setBatteryLevelAlarmMax(SettingUtil.getBatteryLevelAlarmMax());
cloneInfo.setBatteryLevelAlarmOnce(SettingUtil.getBatteryLevelAlarmOnce());
@@ -56,7 +55,6 @@ public class CloneUtils {
SettingUtil.switchCallType3(cloneInfoVo.isCallType3());
SettingUtil.switchEnableAppNotify(cloneInfoVo.isEnableAppNotify());
SettingUtil.switchCancelAppNotify(cloneInfoVo.isCancelAppNotify());
- SettingUtil.smsHubApiUrl(cloneInfoVo.getSmsHubApiUrl());
SettingUtil.setBatteryLevelAlarmMin(cloneInfoVo.getBatteryLevelAlarmMin());
SettingUtil.setBatteryLevelAlarmMax(cloneInfoVo.getBatteryLevelAlarmMax());
SettingUtil.switchBatteryLevelAlarmOnce(cloneInfoVo.isBatteryLevelAlarmOnce());
diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/Define.java b/app/src/main/java/com/idormy/sms/forwarder/utils/Define.java
index 95cdd3ee..a83a26f7 100644
--- a/app/src/main/java/com/idormy/sms/forwarder/utils/Define.java
+++ b/app/src/main/java/com/idormy/sms/forwarder/utils/Define.java
@@ -30,8 +30,6 @@ public class Define {
public static final String SP_MSG_KEY_STRING_BATTERY_LEVEL_ONCE = "tsms_msg_key_string_battery_level_once";
public static final String SP_MSG_KEY_STRING_RETRY_TIMES = "tsms_msg_key_retry_times";
public static final String SP_MSG_KEY_STRING_DELAY_TIME = "tsms_msg_key_delay_time";
- public static final String SP_MSG_KEY_STRING_ENABLE_SMSHUB_API = "tsms_msg_key_string_enable_smshub_api";
- public static final String SP_MSG_KEY_STRING_SMSHUB_API_URL = "tsms_msg_key_string_smshub_api_url";
public static final String SP_MSG_KEY_STRING_ENABLE_HTTP_SERVER = "tsms_msg_key_string_enable_http_server";
public static final String SP_MSG_KEY_STRING_ENABLE_CALL_TYPE_1 = "tsms_msg_key_string_enable_call_type_1";
public static final String SP_MSG_KEY_STRING_ENABLE_CALL_TYPE_2 = "tsms_msg_key_string_enable_call_type_2";
diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/Lamda.java b/app/src/main/java/com/idormy/sms/forwarder/utils/Lamda.java
index 71c1f47f..78af2ccd 100644
--- a/app/src/main/java/com/idormy/sms/forwarder/utils/Lamda.java
+++ b/app/src/main/java/com/idormy/sms/forwarder/utils/Lamda.java
@@ -3,6 +3,7 @@ package com.idormy.sms.forwarder.utils;
import java.util.Objects;
public class Lamda {
+ @SuppressWarnings("RedundantThrows")
public interface Consumer extends Func {
void accept(T t) throws Exception;
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 8005c7c4..77e6fca0 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
@@ -226,14 +226,6 @@ public class SettingUtil {
sp_setting.edit().putString(key, value).apply();
}
- public static void switchEnableSmsHubApi(Boolean enable) {
- sp_setting.edit().putBoolean(Define.SP_MSG_KEY_STRING_ENABLE_SMSHUB_API, enable).apply();
- }
-
- public static boolean getSwitchEnableSmsHubApi() {
- return sp_setting.getBoolean(Define.SP_MSG_KEY_STRING_ENABLE_SMSHUB_API, false);
- }
-
public static void switchEnableHttpServer(Boolean enable) {
sp_setting.edit().putBoolean(Define.SP_MSG_KEY_STRING_ENABLE_HTTP_SERVER, enable).apply();
}
@@ -242,14 +234,6 @@ public class SettingUtil {
return sp_setting.getBoolean(Define.SP_MSG_KEY_STRING_ENABLE_HTTP_SERVER, false);
}
- public static void smsHubApiUrl(String url) {
- sp_setting.edit().putString(Define.SP_MSG_KEY_STRING_SMSHUB_API_URL, url).apply();
- }
-
- public static String getSmsHubApiUrl() {
- return sp_setting.getString(Define.SP_MSG_KEY_STRING_SMSHUB_API_URL, "");
- }
-
public static void switchCallType1(Boolean switchCallType) {
sp_setting.edit().putBoolean(Define.SP_MSG_KEY_STRING_ENABLE_CALL_TYPE_1, switchCallType).apply();
}
diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/SmsHubActionHandler.java b/app/src/main/java/com/idormy/sms/forwarder/utils/SmsHubActionHandler.java
deleted file mode 100644
index 8269c69a..00000000
--- a/app/src/main/java/com/idormy/sms/forwarder/utils/SmsHubActionHandler.java
+++ /dev/null
@@ -1,144 +0,0 @@
-package com.idormy.sms.forwarder.utils;
-
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.util.Log;
-
-import com.alibaba.fastjson.JSON;
-import com.idormy.sms.forwarder.model.LogModel;
-import com.idormy.sms.forwarder.model.vo.SmsHubVo;
-import com.idormy.sms.forwarder.sender.SmsHubApiTask;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Objects;
-import java.util.concurrent.ConcurrentHashMap;
-
-public class SmsHubActionHandler {
- public static final long RULE_ID = -999L;
- private static Boolean hasInit = false;
-
- private static ConcurrentHashMap> cache;
-
- public enum SmsHubMode {
- server, client
- }
-
- @SuppressLint("StaticFieldLeak")
- private static Context context;
-
- @SuppressLint("HandlerLeak")
- public static void init(Context context) {
- //noinspection SynchronizeOnNonFinalField
- synchronized (hasInit) {
- if (hasInit) return;
-
- hasInit = true;
- SmsHubActionHandler.context = context;
- cache = new ConcurrentHashMap<>();
- for (SmsHubMode smsHubMode : SmsHubMode.values()) {
- cache.put(smsHubMode, new ArrayList<>());
- }
- }
- }
-
- public static synchronized int size(SmsHubMode smsHubMode) {
- return Objects.requireNonNull(cache.get(smsHubMode)).size();
- }
-
- public static synchronized List getData(SmsHubMode smsHubMode) {
- List smsHubVoList = cache.get(smsHubMode);
- assert smsHubVoList != null;
- if (smsHubVoList.size() > 0) {
- cache.put(smsHubMode, new ArrayList<>());
- return smsHubVoList;
- } else {
- return null;
- }
- }
-
- private static long falg = System.currentTimeMillis();
-
- public static synchronized void putData(SmsHubMode smsHubMode, SmsHubVo... smsHubVos) {
- if (isEnable(smsHubMode)) {
- if (smsHubMode == SmsHubMode.server) {
- long l = falg;
- falg = System.currentTimeMillis();
- if (System.currentTimeMillis() - l > SmsHubApiTask.DELAY_SECONDS * 3) {
- return;
- }
- }
- Objects.requireNonNull(cache.get(smsHubMode)).addAll(Arrays.asList(smsHubVos));
- }
- }
-
- public static synchronized void putData(SmsHubVo... smsHubVos) {
- for (SmsHubMode smsHubMode : SmsHubMode.values()) {
- putData(smsHubMode, smsHubVos);
- }
- }
-
- private static boolean isEnable(SmsHubMode smsHubMode) {
- boolean enable = false;
- if (smsHubMode == SmsHubMode.client) {
- enable = SettingUtil.getSwitchEnableSmsHubApi();
- } else if (smsHubMode == SmsHubMode.server) {
- enable = SettingUtil.getSwitchEnableHttpServer();
- }
- return enable;
- }
-
- public static void handle(String tag, SmsHubVo vo) {
- Log.i(tag, JSON.toJSONString(vo));
- String action = vo.getAction();
- if (SmsHubVo.Action.send.code().equals(action)) {
- send(tag, vo);
- } else {
- String errMsg = "暂不支持的action[" + action + "]";
- vo.setErrMsg(errMsg);
- vo.setAction(SmsHubVo.Action.failure.code());
- }
- vo.setTs(Long.toString(System.currentTimeMillis()));
- }
-
- public static void send(String tag, SmsHubVo vo) {
- boolean failure = true;
- String msg = "";
- Long logId = null;
- try {
- if (SmsHubVo.Action.send.code().equals(vo.getAction())) {
- vo.setType(SmsHubVo.Type.sms.code());
- if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP_MR1) {
- int subscriptionIdBySimId = SimUtil.getSubscriptionIdBySimId(Integer.parseInt(vo.getChannel()) - 1);
- msg = SmsUtil.sendSms(subscriptionIdBySimId, vo.getTarget(), vo.getContent());
- String simInfo = "SIM" + (subscriptionIdBySimId + 1);
- vo.setChannel(simInfo);
- logId = LogUtil.addLog(new LogModel(vo.getType(), vo.getTarget(), vo.getContent(), simInfo, RULE_ID));
- if (msg == null) {
- failure = false;
- HttpUtil.Toast(tag, "短信发送成功");
- Log.i(tag, "短信发送成功");
- vo.setAction(SmsHubVo.Action.suessces.code());
- LogUtil.updateLog(logId, 2, SmsHubVo.Action.suessces.code());
- }
- } else {
- msg = "api<22";
- }
- }
- } catch (Exception e) {
- msg += e.getMessage();
- e.printStackTrace();
- }
- if (failure) {
- msg = "短信发送失败:" + msg;
- HttpUtil.Toast(tag, msg);
- Log.i(tag, msg);
- vo.setAction(SmsHubVo.Action.failure.code());
- vo.setErrMsg(msg);
- if (logId != null) {
- LogUtil.updateLog(logId, 0, msg);
- }
- }
- }
-}
diff --git a/app/src/main/res/layout/activity_clone.xml b/app/src/main/res/layout/activity_clone.xml
index 1b0da6a9..e48fe9ec 100644
--- a/app/src/main/res/layout/activity_clone.xml
+++ b/app/src/main/res/layout/activity_clone.xml
@@ -18,7 +18,6 @@
android:orientation="horizontal">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Proxy Authenticator
Username
Password
- SmsHub client Mode
- Execute the operation returned by the interface
Privacy Policy
Agree
Refuse
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index dd2a3e18..a562e272 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -289,8 +289,6 @@
代理身份验证
用户
密码
- 主动轮询远程 SmsHubApi
- 请先填写服务端地址,再启动服务,APP轮询执行接口返回的操作
隐私政策
同意
拒绝