来电转接 & 重新梳理代码

This commit is contained in:
pppscn 2021-09-29 11:12:30 +08:00
parent c2d2beb8ef
commit ae6a9de101
25 changed files with 77 additions and 32 deletions

1
.gitignore vendored
View File

@ -15,3 +15,4 @@ gradle.properties
/app/release/*
/app/build/*
/psd
/keystore/keystore.properties

View File

@ -58,7 +58,7 @@ android {
}
}
//apk file name
/* android.applicationVariants.all { variant ->
android.applicationVariants.all { variant ->
variant.outputs.all {
//def date = new Date().format("yyyyMMdd" , TimeZone.getTimeZone("Asia/Shanghai"))
def date = new Date().format("yyyyMMdd", TimeZone.getTimeZone("GMT+08"))
@ -69,7 +69,7 @@ android {
outputFileName = "SmsForwarder_release_${date}_${versionName}.apk"
}
}
}*/
}
}
@ -129,9 +129,10 @@ dependencies {
implementation "com.alibaba:fastjson:1.2.78"
// SDK
implementation 'com.umeng.umsdk:common:9.4.4'//
implementation 'com.umeng.umsdk:asms:1.4.1'//
implementation 'com.umeng.umsdk:apm:1.4.2' // SDKcrash数据请一定集成
//SDK都依赖基础组件库
implementation 'com.umeng.umsdk:common:9.3.8'
implementation 'com.umeng.umsdk:asms:1.2.2'
implementation 'com.umeng.umsdk:abtest:1.0.0'
//XUpdate
implementation 'com.github.xuexiangjys:XUpdate:2.1.0'

View File

@ -1,5 +1,5 @@
{
"version": 2,
"version": 3,
"artifactType": {
"type": "APK",
"kind": "Directory"
@ -10,9 +10,11 @@
{
"type": "SINGLE",
"filters": [],
"versionCode": 25,
"versionName": "1.7.4",
"outputFile": "SmsForwarder_release_20210715_1.7.4.apk"
"attributes": [],
"versionCode": 26,
"versionName": "2.0.0",
"outputFile": "SmsForwarder_release_20210929_2.0.0.apk"
}
]
],
"elementType": "File"
}

View File

@ -17,6 +17,7 @@
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_NUMBERS" />
<uses-permission android:name="android.permission.READ_CALL_LOG" />

View File

@ -27,13 +27,13 @@ import com.idormy.sms.forwarder.utils.aUtil;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity implements ReFlashListView.IRefreshListener {
public class MainActivity extends AppCompatActivity implements RefreshListView.IRefreshListener {
private final String TAG = "MainActivity";
// logVoList用于存储数据
private List<LogVo> logVos = new ArrayList<>();
private LogAdapter adapter;
private ReFlashListView listView;
private RefreshListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {

View File

@ -22,8 +22,8 @@ import java.util.Locale;
* 自定义listview
*/
@SuppressWarnings({"CommentedOutCode", "unused"})
public class ReFlashListView extends ListView implements AbsListView.OnScrollListener {
//private static final String TAG = "ReFlashListView";
public class RefreshListView extends ListView implements AbsListView.OnScrollListener {
//private static final String TAG = "RefreshListView";
final int NONE = 0;// 正常状态
final int PULL = 1;// 提示下拉状态
final int RELEASE = 2;// 提示释放状态
@ -37,19 +37,19 @@ public class ReFlashListView extends ListView implements AbsListView.OnScrollLis
int state;// 当前的状态
IRefreshListener iRefreshListener;//刷新数据的接口
public ReFlashListView(Context context) {
public RefreshListView(Context context) {
super(context);
// TODO Auto-generated constructor stub
initView(context);
}
public ReFlashListView(Context context, AttributeSet attrs) {
public RefreshListView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
initView(context);
}
public ReFlashListView(Context context, AttributeSet attrs, int defStyle) {
public RefreshListView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
initView(context);

View File

@ -137,7 +137,7 @@ public class SettingActivity extends AppCompatActivity {
//设置低电量报警值
private void editBatteryLevelAlarm(final EditText et_battery_level_alarm) {
et_battery_level_alarm.setText(SettingUtil.getBatteryLevelAlarm());
et_battery_level_alarm.setText(String.valueOf(SettingUtil.getBatteryLevelAlarm()));
et_battery_level_alarm.addTextChangedListener(new TextWatcher() {
@Override
@ -150,7 +150,7 @@ public class SettingActivity extends AppCompatActivity {
@Override
public void afterTextChanged(Editable s) {
SettingUtil.setBatteryLevelAlarm(et_battery_level_alarm.getText().toString());
SettingUtil.setBatteryLevelAlarm(Integer.parseInt(et_battery_level_alarm.getText().toString()));
}
});
}
@ -158,7 +158,7 @@ public class SettingActivity extends AppCompatActivity {
//接口请求失败重试
private void editRetryDelayTime(final EditText et_retry_delay_time, final int index) {
et_retry_delay_time.setText(SettingUtil.getRetryDelayTime(index));
et_retry_delay_time.setText(String.valueOf(SettingUtil.getRetryDelayTime(index)));
et_retry_delay_time.addTextChangedListener(new TextWatcher() {
@Override

View File

@ -8,6 +8,9 @@ import lombok.Data;
public class BarkSettingVo implements Serializable {
private String server;
public BarkSettingVo() {
}
public BarkSettingVo(String server) {
this.server = server;
}

View File

@ -11,6 +11,9 @@ public class DingDingSettingVo implements Serializable {
private String atMobiles;
private Boolean atAll;
public DingDingSettingVo() {
}
public DingDingSettingVo(String token, String secret, String atMobiles, Boolean atAll) {
this.token = token;
this.secret = secret;

View File

@ -14,6 +14,9 @@ public class EmailSettingVo implements Serializable {
private String pwd;
private String toEmail;
public EmailSettingVo() {
}
public EmailSettingVo(String host, String port, Boolean ssl, String fromEmail, String nickname, String pwd, String toEmail) {
this.host = host;
this.port = port;

View File

@ -9,6 +9,9 @@ public class FeiShuSettingVo implements Serializable {
private String webhook;
private String secret;
public FeiShuSettingVo() {
}
public FeiShuSettingVo(String webhook, String secret) {
this.webhook = webhook;
this.secret = secret;

View File

@ -16,6 +16,9 @@ public class LogVo {
private int forwardStatus;
private String forwardResponse;
public LogVo() {
}
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;

View File

@ -12,6 +12,9 @@ public class QYWXAppSettingVo implements Serializable {
private String toUser;
private Boolean atAll;
public QYWXAppSettingVo() {
}
public QYWXAppSettingVo(String corpID, String agentID, String secret, String toUser, Boolean atAll) {
this.corpID = corpID;
this.agentID = agentID;

View File

@ -8,6 +8,9 @@ import lombok.Data;
public class QYWXGroupRobotSettingVo implements Serializable {
private String webHook;
public QYWXGroupRobotSettingVo() {
}
public QYWXGroupRobotSettingVo(String webHook) {
this.webHook = webHook;
}

View File

@ -8,6 +8,9 @@ import lombok.Data;
public class ServerChanSettingVo implements Serializable {
private String sendKey;
public ServerChanSettingVo() {
}
public ServerChanSettingVo(String sendKey) {
this.sendKey = sendKey;
}

View File

@ -12,6 +12,9 @@ public class SmsSettingVo implements Serializable {
private String mobiles;
private Boolean onlyNoNetwork;
public SmsSettingVo() {
}
public SmsSettingVo(int simSlot, String mobiles, Boolean onlyNoNetwork) {
this.simSlot = simSlot;
this.mobiles = mobiles;

View File

@ -19,6 +19,9 @@ public class SmsVo implements Serializable {
Date date;
String simInfo;
public SmsVo() {
}
public SmsVo(String mobile, String content, Date date, String simInfo) {
this.mobile = mobile;
this.content = content;

View File

@ -9,6 +9,9 @@ public class TelegramSettingVo implements Serializable {
private String apiToken;
private String chatId;
public TelegramSettingVo() {
}
public TelegramSettingVo(String apiToken, String chatId) {
this.apiToken = apiToken;
this.chatId = chatId;

View File

@ -13,6 +13,9 @@ public class WebNotifySettingVo implements Serializable {
private String method;
private String webParams;
public WebNotifySettingVo() {
}
public WebNotifySettingVo(String webServer, String secret, String method, String webParams) {
this.webServer = webServer;
this.secret = secret;

View File

@ -95,7 +95,7 @@ public class FrontService extends Service {
public void run() {
int batteryLevel = getBatteryLevel();
System.out.println("当前剩余电量:" + batteryLevel + "%");
int batteryLevelAlarm = Integer.parseInt(SettingUtil.getBatteryLevelAlarm());
int batteryLevelAlarm = SettingUtil.getBatteryLevelAlarm();
if (alarmTimes[0] <= 1 && batteryLevelAlarm > 0 && batteryLevelAlarm <= 100 && batteryLevel == batteryLevelAlarm) {
Date date = new Date();
String msg = "当前剩余电量:" + batteryLevel + "%,已经到达低电量预警阈值,请及时充电!";

View File

@ -14,6 +14,7 @@ import javax.net.ssl.TrustManager;
import javax.net.ssl.TrustManagerFactory;
import javax.net.ssl.X509TrustManager;
@SuppressLint("TrustAllX509TrustManager")
public class CertUtils {
//获取这个SSLSocketFactory
@ -31,12 +32,10 @@ public class CertUtils {
private static TrustManager[] getTrustManager() {
return new TrustManager[]{
new X509TrustManager() {
@SuppressLint("TrustAllX509TrustManager")
@Override
public void checkClientTrusted(X509Certificate[] chain, String authType) {
}
@SuppressLint("TrustAllX509TrustManager")
@Override
public void checkServerTrusted(X509Certificate[] chain, String authType) {
}

View File

@ -269,6 +269,7 @@ public class PhoneUtils {
*
* @return 返回卡槽数
*/
@SuppressLint("ObsoleteSdkInt")
public static int getSimCount() {
int count = 1;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
@ -293,6 +294,7 @@ public class PhoneUtils {
*
* @return 0, 1, 2
*/
@SuppressLint("ObsoleteSdkInt")
public static int getSimUsedCount() {
int count = 0;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
@ -325,6 +327,7 @@ public class PhoneUtils {
*
* @return 多Sim卡的具体信息
*/
@SuppressLint("ObsoleteSdkInt")
public static List<SimInfo> getSimMultiInfo() {
List<SimInfo> infos = new ArrayList<>();
Log.d(TAG, "Build.VERSION.SDK_INT = " + Build.VERSION.SDK_INT);
@ -526,6 +529,7 @@ public class PhoneUtils {
}
// 检查权限是否获取android6.0及以上系统可能默认关闭权限且没提示
@SuppressLint("InlinedApi")
public static void CheckPermission(PackageManager pm, Context that) {
//PackageManager pm = getPackageManager();
boolean permission_internet = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.INTERNET", that.getPackageName()));
@ -538,11 +542,14 @@ public class PhoneUtils {
boolean permission_send_sms = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.SEND_SMS", that.getPackageName()));
boolean permission_read_phone_state = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.READ_PHONE_STATE", that.getPackageName()));
boolean permission_read_phone_numbers = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.READ_PHONE_NUMBERS", that.getPackageName()));
boolean permission_read_call_log = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.READ_CALL_LOG", that.getPackageName()));
boolean permission_read_contacts = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.READ_CONTACTS", that.getPackageName()));
boolean permission_battery_stats = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.BATTERY_STATS", that.getPackageName()));
if (!(permission_internet && permission_receive_boot && permission_foreground_service &&
permission_read_external_storage && permission_write_external_storage &&
permission_receive_sms && permission_read_sms && permission_send_sms &&
permission_read_call_log && permission_read_contacts &&
permission_read_phone_state && permission_read_phone_numbers && permission_battery_stats)) {
ActivityCompat.requestPermissions((Activity) that, new String[]{
Manifest.permission.INTERNET,
@ -553,6 +560,8 @@ public class PhoneUtils {
Manifest.permission.READ_SMS,
Manifest.permission.SEND_SMS,
Manifest.permission.READ_PHONE_STATE,
Manifest.permission.READ_CALL_LOG,
Manifest.permission.READ_CONTACTS,
Manifest.permission.READ_PHONE_NUMBERS,
Manifest.permission.FOREGROUND_SERVICE,
Manifest.permission.BATTERY_STATS,

View File

@ -122,14 +122,14 @@ public class SettingUtil {
.apply();
}
public static String getBatteryLevelAlarm() {
return sp_setting.getString(Define.SP_MSG_KEY_STRING_BATTERY_LEVEL_ALARM, "");
public static int getBatteryLevelAlarm() {
return sp_setting.getInt(Define.SP_MSG_KEY_STRING_BATTERY_LEVEL_ALARM, 0);
}
public static void setBatteryLevelAlarm(String battery_level) {
public static void setBatteryLevelAlarm(int battery_level) {
Log.d(TAG, "battery_level :" + battery_level);
sp_setting.edit()
.putString(Define.SP_MSG_KEY_STRING_BATTERY_LEVEL_ALARM, battery_level)
.putInt(Define.SP_MSG_KEY_STRING_BATTERY_LEVEL_ALARM, battery_level)
.apply();
}

View File

@ -5,7 +5,7 @@
android:layout_height="match_parent"
android:orientation="vertical">
<com.idormy.sms.forwarder.ReFlashListView
<com.idormy.sms.forwarder.RefreshListView
android:id="@+id/list_view_log"
android:layout_width="match_parent"
android:layout_height="0dp"

View File

@ -1,4 +0,0 @@
ext {
appVersionCode = 26
appVersionName = "2.0.0"
}